您的位置:首页 > 编程语言 > Java开发

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

2012-09-22 00:08 288 查看
同步代码块:

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对象











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





死锁

同步中嵌套同步









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: