Java开启了两个线程怎么让这两个线程执行完之后执行主线程


并排:两个线程,两个任务(连个执行者)

并行:两个线程,两个任务,一个执行者


1.进程与线程的区别

线程是CPU运行和独立调度的基本单位,进程是资源分配的基本单位,线程只拥有一小部分的资源,一个程序至少包含一个进程,一个进程至少包含一个线程,一个进程中的多个线程共享当前进程所拥有的资源。

一个应用程序只能有一个主线程,主线程:对UI的操作,代码只能顺序执行,只有一个主线程

子线程:多用来处理繁重的数据操作任务


2.多线程开发

  优点:

(1)使用线程可以把程序中占据时间长的任务放到后台去处理,如图片,视频的下载

(2)发挥多核处理器的优势,并发执行让系统运行的更快,更流畅,使用户体验更好

  缺点:

 (1)大量的线程降低代码的可读性

 (2)更多的线程需要更多的内存空间

 (3)当多个线程对同一资源出现争夺的时候,要注意线程安全的问题

  

   

   NSObject 自带的多线程的处理方法

   优点:写法简单

   缺点:不能处理线程安全问题


 

    优点:提供一系列方法获取线程,操作线程

    缺点:默认没处理线程安全问题,而且对线程的设置非常繁琐

    NSThread  的一个对象,就代表一个线程


     

的使用

    //优点:能够非常合理的安排线程的重用,对线程安全也做了非常好的处理,使用也非常简单

    // 缺点:效率略低

   


串行

      

    

获取主队列

    // 获取全局队列

    //参数1:选择的是哪个优先级的全局队列

    //参数2:暂时没用,只能填0