多线程

僤鯓⒐⒋嵵緔 提交于 2020-03-08 16:37:35

  大家好,本章我将给大家分享一下前几天自己对多线程的认知。

  多线程:是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

      线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.

      线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,      根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。

  多线程的三大特性:原子性,可见性,有序性

    原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。

    可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。

    有序性:即程序执行的顺序按照代码的先后顺序执行。

  多线程的优缺点:

      优点:

    ·使用线程可以把占据时间长的程序中的任务放到后台去处理

    ·用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度

    ·程序的运行速度可能加快

    ·在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。

    .多线程技术在IOS软件开发中也有举足轻重的位置。

    .线程应用的好处还有很多,就不一一说明了

   缺点:

    .如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换。

    ·更多的线程需要更多的内存空间。

    ·线程可能会给程序带来更多“bug”,因此要小心使用。

    ·线程的中止需要考虑其对程序运行的影响。

    ·通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生。

 

    java中多线程的实现方式:

       1.继承Thread类;

       2.实现runable接口;

 

    
    线程同步:
    在多线程应用中,考虑不同线程之间的数据同步和防止死锁。当两个或多个线程之间同时等待对方释放资源的时候就会形成线程之间的死锁。为了防止死锁的发生,需要通过同步来实现线程安全
    java中可以用synchronized关键字实现。
 
    线程安全问题:
      为了防止线程安全问题,就必须要保证线程的三大特性(原子性,有序性,可见性),三者缺一不可。
 
 
      
 
    下面是我自己写的用多线程模拟抢票程序:
    
 
 
 
 
  
    
以上便是我对多线程的理解。如果以后需要改动,再来补充。也欢迎网友来评论,一起交流,谢谢大家!
 
 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!