Java基础学习4_多线程(同步)

同步代码块:

         synchronized(对象)

{

        需要被同步的代码

}

对象如同锁。持有锁的线程可以在同步中执行。

没有持有锁的线程即使获取cpu的执行权,也进不去,因为没有获取锁。如火车上的卫生间


              java.lang.Thread类

静态方法
currentThread() 返回当前线程实例
sleep(long millis) 当前线程休眠
yield() 当前线程停顿
dumpStack() 打印当前线程的调用栈
常用方法
start()  启动该线程,将导致run方法被自动调用
run()  必须覆盖该方法,在方法体中添加线程逻辑代码
interrupt()  用于将一个中断请求发送给线程
interrupted()   用于测试当前线程是否已经被中断
isInterrupted()   用于测试某个线程是否已经被中断
isAlive()    用于测试某个线程是否还活着
setPriority(int newPriority)   设置线程的优先级
 join( )   等待线程结束 


两种创建线程方法的比较

使用Runnable接口
可以将代码和数据分开,形成清晰的模型
还可以从其他类继承
保持程序风格的一致性


直接继承Thread类
不能再从其他类继承
编写简单,可以直接操纵线程
无需使用Thread. currentThread()

同步函数的锁是this


以下是验证this





静态同步函数的锁是Class对象



单例设计 模式--------懒汉式

死锁

同步中嵌套同步



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值