Thread、Join、Synchromized、Lock

来源:互联网 发布:淘宝网购物女童鞋 编辑:程序博客网 时间:2024/06/08 06:01

这个是ThreadEmergency和ThreadJoin:

public class EmergencyThread implements Runnable{//一定要记得继承Runnable接口public void run(){for(int i=1;i<6;i++){try{Thread.sleep(1000);}catch(Exception e){e.printStackTrace();}System.out.println("紧急情况:"+i+"号车出发!");}}}
public class JoinThread {/** * @param args */public static void main(String[] args) {Thread thread = new Thread(new EmergencyThread());//实例化Thread线程的方法,需要传入参数thread.start();//启动要调用start()方法for(int i = 1;i<6;i++){try {Thread.sleep(1000);} catch (InterruptedException e1) {e1.printStackTrace();}System.out.println("正常情况:"+i+"号车出发!");try {thread.join();//强行加入:join()} catch (InterruptedException e) {e.printStackTrace();}}}}



 

 

 

 

这个是ThreadLock:

public class DeadLock {/** * @param args */private static final Object o1 = new Object();private static final Object o2 = new Object();private class Run1 implements Runnable{@Overridepublic void run() {// TODO Auto-generated method stubString threadName = Thread.currentThread().getName();synchronized(o1){try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.print(threadName+"准备进入O2!");synchronized(o2){System.out.println(threadName+"已经进入了O2!");}}}}private class Run2 implements Runnable{@Overridepublic void run() {// TODO Auto-generated method stubString threadName = Thread.currentThread().getName();synchronized(o2){try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(threadName+"准备进入O1!");synchronized(o1){System.out.println(threadName+"已经进入了O2!");}}}}public static void main(String[] args) {// TODO Auto-generated method stubThread thread1 = new Thread(new DeadLock().new Run1(),"线程-O1-");Thread thread2 = new Thread(new DeadLock().new Run2(),"线程-O2-");thread1.start();thread2.start();}}


 

 

 

原创粉丝点击