随笔分类 - 并发与多线程
摘要:可见性关键字(volidate): 如果对java内存模型了解较清楚的话,我们知道每个线程都会被分配一个线程栈。 线程栈里存的是对象的引用,但当前cache缓存机制,可能会把数据拷贝。 就是,命中缓存,去数据是从cache中获取,而不是从本地内存读取。 不加关键字实例: java package c
阅读全文
摘要:同步关键字(synchronized): 多线程给我们提供方便的时候,也给整个编程增加了难度,尤其是对临界资源的控制,尤为重要。 一个在操作系统课上,老掉牙的事例,就把这种情况解释的明明白白。 一对夫妻共用一张银行卡,老公呢准备出去买盒烟,一查卡里还有10000元, 但在他买烟的同时,他媳妇一下子支
阅读全文
摘要:等待和通知 Object对象提供了wait( ) 方法和 notify ( ) 方法。 wait( )方法需要配对着synchronized 关键字使用。 当一个线程的资源调用 wait( )方法时,它会失去锁,然后进入等待序列。 当其他线程调用notify方法时才会重新激活。 实例: 运行结果:
阅读全文
摘要:多线程优先级: 多线程优先级为1~10,数字越大,优先级越高。 一个线程不设置优先级的话,默认优先级为5; 以上,是Thread类提供的三个优先级常量。 设置优先级的方法为,Thread对象或继承了Thread类的对象,调用setPriority( )方法。 实例: 运行结果: 第1次运行结果: 优
阅读全文
摘要:多线程创建: 在java里,多线程的创建方式,一是继承Thread类,一种是实现Runnable接口。 无论是哪一种线程创建方式,我们都要重写run( )方法。 只有run( )方法中的业务代码,才是线程开启后去执行的业务逻辑。 而每一个继承Thread类的类,对象实例化过程中,就可以创建一个线程。
阅读全文
摘要:多线程 多线程是用来做什么的,我想举一个例子简单说明一下。 我正在工作,但是到中午了,饿了,但是去做饭就必须停下手中的工作。 而做饭又是一件非常耗时的事情,在做饭的时候,工作就处于停滞状态。 这就是串行程序的执行方式。 工作 停止工作 做饭 而随着社会的发展,外卖行业的发展,我们可以打电话订外卖。
阅读全文

浙公网安备 33010602011771号