[Java] Thread-01 sleep-join-yield
eclipse调整格式快捷键 与 搜狗输入法里的切换简繁快捷键是ctrl+shift+F 跟eclipse冲突了。关闭搜狗输入法快捷键即可。
public class TestThread1 { public static void main(String args[]) { Runner1 r = new Runner1(); r.start(); // r.run(); // Thread t = new Thread(r); // t.start(); for (int i = 0; i < 100; i++) { System.out.println("Main Thread:------" + i); } } } // class Runner1 implements Runnable { class Runner1 extends Thread { public void run() { for (int i = 0; i < 100; i++) { System.out.println("Runner1 :" + i); } } } // 马老师心得 : 能使用接口,就尽量使用接口,别从 Thread 继承,因为缺少灵活性。
import java.util.*; public class TestInterrupt { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); try { Thread.sleep(10000); } catch (InterruptedException e) { } thread.interrupt(); } } class MyThread extends Thread { boolean flag = true; public void run() { while (flag) { System.out.println("===" + new Date() + "==="); try { sleep(1000); } catch (InterruptedException e) { return; } } } }
public class TestJoin { public static void main(String[] args) { MyThread2 t1 = new MyThread2("abcde"); t1.start(); try { t1.join(); } catch (InterruptedException e) { } for (int i = 1; i <= 10; i++) { System.out.println("i am main thread"); } } } class MyThread2 extends Thread { MyThread2(String s) { super(s); } public void run() { for (int i = 1; i <= 10; i++) { System.out.println("i am " + getName()); try { sleep(1000); } catch (InterruptedException e) { return; } } } }
public class TestYield { public static void main(String[] args) { MyThread3 t1 = new MyThread3("t1"); MyThread3 t2 = new MyThread3("t2"); t1.start(); t2.start(); } } class MyThread3 extends Thread { MyThread3(String s) { super(s); } public void run() { for (int i = 1; i <= 100; i++) { System.out.println(getName() + ": " + i); if (i % 10 == 0) { yield(); } } } }