java学习回顾---线程和同步代码块

线程

在这里插入图片描述
在这里插入图片描述
Start与run的区别:
在这里插入图片描述
在这里插入图片描述
局部变量在每一个线程中均有一份(见下图x),想让多个线程共享一个数据那么得把那个数据用private static修饰(见卖票程序)
在这里插入图片描述
在这里插入图片描述

Runnable

在这里插入图片描述
当子类已经继承了一个父类,却又需一个线程的时候,就实现runnable接口。
在这里插入图片描述
Runnable接口实现多线程实例:
在这里插入图片描述
在这里插入图片描述
使用runnable来实现多线程,还可以做到让多个线程共用一个数据,比如上例中的四个线程因为创建时输入的都是t这个变量,所以他们共用了一个tick。

同步代码块及同步函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同步函数:与同步代码块同功能,只不过作为修饰放在函数的前缀
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
同步代码块用的锁是指定对象,即synchronized()括号里指定的对象。如果在一个代码里同步代码块和同步函数共享了一个数据,为了安全最好使两个的锁相同。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46428711/article/details/110733314
今日推荐