2018-05-25☞线程

今天继续昨天的线程的基本操作

昨天说到的有创建,启动、终止、中断、挂起

今天学习到的是join和yeild,

 join是主线程等待其它线程结束在执行,yeild礼让,但是不一定让出去了

守护线程:后台执行如GC setDaemon(true)

优先级:setPriority()

基本线程同步操作

synchronize:制定枷锁对象,给定对象枷锁,进入同步块需要获取锁

给实体类的方法默认的为实例对象本身,静态方式指的是类对象

Object.wait、Object.notify、Object.notifyAll

wait,获取monitor的线程释放锁,进入等待状态(不同于Thread.sleep 不释放锁)

notify/notifyAll通知等待线程可以去争取锁了


jvm里的内存模型

JMM---主内存存放我们的共享数据、线程工作内存需要数据从主内存读取创建副本

          操作完后再把值赋值给主内存数据

3个概念:原子性、有序性、可见性

原子性:操作不可打断,一致性,要么执行要么不执行

              一般我们用synchronize、lock保证原子性

有序性、可见性:分别是顺序和共享数据的操作读写都可见,我们一般在变量上添加

valatile关键字或者上面的同步块或者lock(并发时没法保证这些的)




----------=----------------华丽的的end线坚持了一周了,继续加油-----------------------------

你可能感兴趣的:(2018-05-25☞线程)