多线程的探讨(死锁)

来源:互联网 发布:三菱plc触摸屏软件 编辑:程序博客网 时间:2024/05/09 02:20

        要去了解线程首先得去了解下进程,所谓的进程就是正在执行的程序,进程的启动首先要把数据丢如内存 ,进程负责了内存空间的划分,也负责了线程的数量。


      JAVA中多线程的好处:

                  1:解决了一个进程同时执行多个任务的问题

                  2:提高资源李永利 

                  多线程的弊端:

                   1:增加CPU压力 

                   2:降低线程中线程的执行概率

                   3:引发线程安全问题

                   4:出现死锁

       

         线程安全的解决方案:1:可以使用同步代码块去解决。

          synchronized (锁对象) {
需要被同步的代码
}

            2: 同步函数

                                 1:如果是一个非静态的同步函数锁,对象是this 如果是静态的同步函数锁,对象 是当前函数所属的类的字节码文件(class对象)

                                  2:同步函数的锁对象是固定的,

          需要注意的事项

            1:锁对象可以是任意对象。 

            2:一个线程在同步代码块中sleep  并不会释放对象  

            3:如果不存在线程安全问题 就不要使用同步代码块 因为会降低效率  。  

            4:锁对象必须是多线程共享的对象


           死锁:

                  1:存在2个或者2个以上的线程

                  2:存在2个或者2个以上的共享资源

                   暂时没有解决方案,只能避免发生


      

      

           




         

0 0
原创粉丝点击