线程的实现方式

1、多线程随机打印结果
在这里插入图片描述
2、多线程方法的内存图解
在这里插入图片描述
3、Thread类获取线程名称的两种方式
在这里插入图片描述
在这里插入图片描述
4、创建线程的第二种方式Runnable
在这里插入图片描述
5、Thread和Runnable接口的区别
在这里插入图片描述
6、匿名内部类实现线程创建
在这里插入图片描述
在这里插入图片描述
7、线程安全问题
在这里插入图片描述
8、解决线程安全问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9、并发与并行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
10、(volatile)实现线程同步

volatile关键字为域变量的访问提供了一种免锁机制只需在account前面加上volatile修饰,即可实现线程同步。

class Bank {
            //需要同步的变量加上volatile
            private volatile int account = 100;

            public int getAccount() {
                return account;
            }
            //这里不再需要synchronized 
            public void save(int money) {
                account += money;
            }

(1)多线程中的非同步问题主要出现在对域的读写上,如果让域自身避免这个问题,则就不需要修改操作该域的方法。

(2)volatile不能保证原子操作,因此volatile不能代替synchronized

(4)每次要线程要访问volatile修饰的变量时都是从内存中读取,而不是从缓存当中读取,因此每个线程访问到的变量值都是一样的。这样就保证了同步。

10、java.util.concurrent包来支持同步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值