多线程-初识并发-例子抢票
package Threads; //实现多个线程,操作同一个实现类 //问题:多个线程同时操作一个资源的情况下,线程不安全了,数据紊乱 public class testRable implements Runnable { //票数 private int ticketNums=100; public void run(){ while(true){ if (ticketNums>=0){ //模拟延时 try{ Thread.sleep(200); }catch(InterruptedException e){ e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"拿到了第:"+ticketNums--+"票");//先拿到票再减减 }else{ break; } } } public static void main(String []args){ //创建线程实现类对象 testRable t1=new testRable(); //创建线程对象,并启三个线程把实现类对象添加到线程,然后为线程命名 Thread ead1=new Thread(t1,"线程1"); Thread ead2=new Thread(t1,"线程2"); Thread ead3=new Thread(t1,"线程3"); //启动线程 ead1.start(); ead2.start(); ead3.start(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署