多线程

在这里插入图片描述方式一:public class MyThread extends Thread{
@override
public void run(){
for(int i=0;i<100;i++){
System.our.println(i);
}
}
}
public class MyTest{
public static void main(String[] args){
MyThread myThread=new MyThread();
myThread.start();
方式二:实现Runnable接口
方式三:实现Callable接口 在主方法里new MyCallable()
new FutureTask<>(myCallable);
new Thread(task)

synchronized的缺陷:

当某个线程进入同步方法获得对象锁,那么其他线程访问这里对象的同步方法时,必须等待或者阻塞,这对高并发的系统是致命的,这很容易导致系统的崩溃。如果某个线程在同步方法里面发生了死循环,那么它就永远不会释放这个对象锁,那么其他线程就要永远的等待。这是一个致命的问题。

相比同步方法,一般采用同步代码块。

 这是因为同步代码块里被锁的内容更少,效率相对更高一些。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值