Java线程

线程与进程的区别:

进程是线程的容器,不同进程间相互独立,同一进程不同线程间资源共享。

进程间通信需要特殊方法,比如管道,线程间通信可以通过共享变量。

java有两种方法创建线程,优先使用Runnable接口,因为java只支持单继承。

简单的线程调度:


常用方法:


sleep()是静态方法。

重写run()方法不能throws Exception。

终止线程最好方法:可以设置一个boolean变量。

synchronized

1.修饰方法放到public后面(不能被继承)

同一时间只有一个线程可以访问synchronized方法,当一个线程调用一个synchronized方法时,其他线程想要再调用该方法,或调用该类其他synchronized方法时会被阻塞,但可以调用其他非synchronized方法

2.修饰代码块(锁定某个对象或当前对象)

synchronized(this) {

代码

}

总结:无论synchronized关键字加在方法上还是对象上,如果它作用的对象是非静态的,则它取得的锁是对象;如果synchronized作用的对象是一个静态方法或一个类,则它取得的锁是对类,该类所有的对象同一把锁。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值