JAVA多线程
Link.Liu
写bug
展开
-
JAVA基础多线程(3)—竞争条件 原子类 可重入锁
这是原始的程序,没有锁,所以计数器是重复的public class test { public static void main(String[] args){ Counter counter= new Counter(); Thread t1=new Thread(counter); Thread t2=new Thread(counter)...原创 2018-10-29 11:06:05 · 158 阅读 · 0 评论 -
java基础多线程(4)—线程可见性volatile 线程封闭threadlocal CAS操作
一。线程的可见性volatile(不是太常用,因为他只能解决线程可见和阻止指令排序,并不能解决多线程的并发问题)volatile:(1)保证变量的修改让所有线程可见(2)阻止指令排序 这个程序有3个结果,0,42,没有进入循环直接结束 42:正常跑 0:yeild以后直接继续跑run的线程了 没有进入循环直接结束:这个就比肩奇怪了,除非这句话先...原创 2018-10-29 14:26:35 · 435 阅读 · 0 评论 -
JAVA基础多线程(1)—线程创建
JAVA基础多线程(1)一,多线程 (1)runnable的接口 (2)继承thread首先的实现runnable的接口或者继承thread父类,并且重写run方法,run里写的就是运行的东西。尽量用接口,因为毕竟一个类只能继承一个父类,接口灵活1.继承实现2.接口实现//接口实现public class PrintChar implements Runnable{...原创 2018-10-26 11:35:04 · 178 阅读 · 1 评论 -
JAVA基础多线程(2)—线程同步
先举一个反例(关于卖票的例子)注:为了简洁,文章不打@注释,set,get,构造函数,异常等 这个程序就是模拟买票的窗口,new一个SellTicket,然后5个窗口一起卖,从结果可以看出,实际是卖的乱了。public class SellTicket implements Runnable{ private int ticketCount=10; priva...原创 2018-10-26 15:40:07 · 146 阅读 · 0 评论