并发篇--对并发编程的理解

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

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

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

 

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

 

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

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

你可能感兴趣的:(java)