多线程的琐碎

本文详细探讨了Java中线程控制的关键概念和技术,包括synchronized关键字的使用、阻塞方法如wait/notify的工作原理、中断(interrupt)线程的方法及其注意事项、Lock接口与synchronized关键字的区别以及它们各自的实现原理。

一、http://wangym.iteye.com/blog/1265973

这篇文章介绍了:1.java的synchronize同步【静态】方法的监视器对象是类本身,非静态方法的监视器是对象。2.同一个监视器一段时间只允许一个线程运行它的代码。

二、http://blog.youkuaiyun.com/jingzi123456789/article/details/69951057

这篇文章介绍了:阻塞(wait/notify/notifyAll)方法只能在同步块或同步方法中被调用,因为如果一个方法不需要同步,那就不需要不同线程的协作。

三、https://www.cnblogs.com/hapjin/p/5450779.html

这篇文章介绍了中断(interrupt)线程:

1.interrupt由当前线程中断其他线程otherThread.interrupt(),让其他线程由阻塞状态变为中断状态。其他线程的响应代码如下:

public class MyThread extends Thread {

    @Override
    public void run() {
        super.run();
        for (int i = 0; i < 500000; i++) {
            if (this.interrupted()) {        //注意条件
                System.out.println("should be stopped and exit");
                break;
            }
            System.out.println("i=" + (i + 1));
        }
        System.out.println("this line is also executed. thread does not stopped");//尽管线程被中断,但并没有结束运行。这行代码还是会被执行
    }
}

2.杀死(stop)线程容易导致不一致性

3.可以抛出interruptException以中断线程并且在catch块中处理,或者向更高类抛出(即在catch块中Thread.currentThread.interrupt())。

四、https://www.zhihu.com/question/23328075/answer/24228413

这篇文章介绍了sleep和wait的区别,“sleep是Thread类的方法,wait是Object类中定义的方法”,并说“可以简单认为和锁相关的方法都定义在Object类中”。

五、http://blog.youkuaiyun.com/cds86333774/article/details/50993129

该篇文章介绍了线程的五种状态。


六、http://blog.youkuaiyun.com/XSF50717/article/details/47262717

这篇文章介绍了lock和synchronized的区别以及实现原理。lock是乐观锁机制,乐观锁是java并发包下的CAS(compare and swap)实现的。synchronize是悲观锁机制,cpu独占锁,只能依靠阻塞来释放。

七、http://blog.youkuaiyun.com/natian306/article/details/18504111

嗯……这是深入研究以上两者的区别,我还没看。

八、http://ifeve.com/compare-and-swap/

cas解析,还没看。

我看了原子类的源码

九、http://blog.youkuaiyun.com/yangbutao/article/details/8479520

jdk高并发的包。

十、https://www.cnblogs.com/wxd0108/p/5479442.html

作为总结不错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值