小菜鸟对并发编程的理解

来源:互联网 发布:录音音乐合成软件 编辑:程序博客网 时间:2024/06/06 05:38

我是名大四学生,刚刚经历了魔鬼式的面试,总是有面试官很高傲问道K“了解并发编程吗?”。

我是学java后台编程的,就开始将多线程的知识搬了上来,但是都是知其然,不知其所以然。

我决定将死磕一下并发编程,对于这几天的学习进行以下总结:

并发编程,为什么要并发编程?
其实是在提高资源的利用率而且让大家都有机会去共享资源,要不然不用时,资源放在那里也是白白浪费。
比如说人可以一边跑步,一边听歌,一边唱歌;而不是先去跑步,再去听歌,再去唱歌。
有人会问,并发编程这么爽,那没有缺点吗?
当然有,当并发编程共享资源时,会产生一些现象
1、多条线程在共享相同内存地址时,可能会修改并访问其他线程正在使用的变量。
就像一边跑步一边唱歌,都会用到气息,当唱歌与呼气同时进行一个特殊点时,可能就会气息紊乱。
2、当有不同线程竞争同一资源是,双方僵持导致程序无法进行
就像只有一座独木桥,甲乙两个人在桥的两侧,双方仇深似海,只能在两则进行僵持了,谁也不能过河
有了这样的缺点难道我们不用并发编程了吗?
当然不是,我会有一些方法解决这种问题
1、安全线程类并不会发生这种情况,但是什么事安全线程类
安全线程类就是在单线程环境或者并发环境下都不会被破坏的类
无状态的类一定是安全线程类。
2、synchronized加锁,确保线程有序运行避免死锁产生。(具体方法,我会以代码形式解释,在以后专门写一篇文章)

3、封装性越强,线程类越安全。

希望我的理解对您有所帮助