零基础网站开发设计,房产管理局信息查询入口,网页策划方案,网站建设的机构继承Thread类
两条线程交替进行创建线程方式一#xff1a;继承Theard类#xff0c;重写run方法#xff0c;调用start开启线程总结:注意#xff0c;线程开启不一定立即执行#xff0c;由CPU调度执行
//两条线程交替进行//创建线程方式一#xff1a;继承Theard类#xf…继承Thread类
两条线程交替进行创建线程方式一继承Theard类重写run方法调用start开启线程总结:注意线程开启不一定立即执行由CPU调度执行
//两条线程交替进行//创建线程方式一继承Theard类重写run方法调用start开启线程
//总结:注意线程开启不一定立即执行由CPU调度执行
package com.zeng.demo01;
public class TestTheard01 extends Thread{Overridepublic void run() {//run方法线程体for (int i 0; i 20; i) {System.out.println(hello --i);}}public static void main(String[] args) {//main线程主线程//创建一个线程对象TestTheard01 testTheard01 new TestTheard01();//调用start方法开启线程testTheard01.start();for (int i 0; i 20; i) {System.out.println(hello word--i);}}
}
实现Runnable
创建线程方法2实现runnable接口重写run方法执行线程需要丢入runnable接口实现类调用start方法创建线程对象通过线程对象来开启我们的线程代理
Thread thread new Thread(testThread02);
thread.start();package com.zeng.demo01;
//创建线程方法2实现runnable接口重写run方法执行线程需要丢入runnable接口实现类调用start方法
public class TestThread02 implements Runnable{Overridepublic void run() {//run方法线程体for (int i 0; i 200; i) {System.out.println(hello woeld--i);}}public static void main(String[] args) {//创建runnable接口的实现类对象TestThread02 testThread02 new TestThread02();//创建线程对象通过线程对象来开启我们的线程代理
// Thread thread new Thread(testThread02);
// thread.start();new Thread(testThread02).start();for (int i 0; i 200; i) {System.out.println(hello--i);}}
}
多个线程同时操纵同一个对象买火车票的例子发现问题多个线程操作同一个资源的情况下线程不安全数据紊乱
package com.zeng.demo01;
//多个线程同时操纵同一个对象
//买火车票的例子//发现问题多个线程操作同一个资源的情况下线程不安全数据紊乱
public class TestThread03 implements Runnable{//票数private int ticketNums10;Overridepublic void run() {while(true){if(ticketNums0){break;}// 模拟延时try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName()--拿到了第ticketNums--票);}}public static void main(String[] args) {TestThread03 ticket new TestThread03();new Thread(ticket,小明).start();new Thread(ticket,老师).start();new Thread(ticket,黄牛党).start();}
}
模拟龟兔赛跑模拟兔子休息Thread.Sleep(/*时间单位毫秒*/);
package com.zeng.demo01;
//模拟龟兔赛跑
public class Race implements Runnable{//胜利者private static String winner;Overridepublic void run() {for (int i 0; i 100; i) {//模拟兔子休息if(Thread.currentThread().getName().equals(兔子)i%100){try {Thread.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}}//判断比赛是否结束boolean flaggameOver(i);//如果比赛结束了就停止程序if(flag){break;}System.out.println(Thread.currentThread().getName()--跑了i步);}}//判断是否完成比赛private boolean gameOver(int steps){//判断是否有胜利者if(winner!null){return true;}if(steps100){winnerThread.currentThread().getName();System.out.println(winner iswinner);return true;}return false;}public static void main(String[] args) {Race race new Race();new Thread(race,兔子).start();new Thread(race,乌龟).start();}
}