多线程

作者: Sakura羿 | 来源:发表于2018-07-24 19:42 被阅读0次

一、进程和线程区别

1.进程:
进程是系统进行资源分配和调度的一个独立单位。一个进程可以有多个线程。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。
状态:就绪,执行,阻塞
进程状态转换图
2.线程:
线程是进程的一个实体,是CPU调度和分派的基本单位,比进程更小的能独立运行的基本单位。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

二、并发与并行

三、线程状态

线程状态转换图
1.新建状态(New):

方式:

  • 实现Runnable,重写run()方法。(最常用)
  • 继承Thread
  • 实现Callable,有返回值,返回值通过 FutureTask 进行封装。
2.就绪状态(Runnable)
  • 调用start()方法,jvm为其创建方法调用栈和程序计数器。处于就绪态的线程可随时被CPU调度。
3.运行状态(Running)
  • 线程获取CPU权限。线程只能从就绪状态进入运行状态。
4.阻塞状态(Blocked)
  • (1)等待阻塞:调用wait方法让线程等待某工作的完成。
  • (2)同步阻塞:线程在获取synchronized同步锁失败时(因为锁被其它线程所占用),它会进入同步阻塞状态。
  • (3)其他阻塞:通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5.死亡状态
  • 线程执行完了或异常退出。

方法

1.wait()、notify()、nofityAll()方法

  • 在Object中定义。
    <font color=red> wait()会让当前线程释放它所持有的锁。</font>
    <font color=gray size=5>gray</font>

2.yield()、sleep()、join()和interrupt()方法


四、sleep和wait的区别

参考:https://github.com/CyC2018/Interview-Notebook/blob/master/notes/Java%20%E5%B9%B6%E5%8F%91.md

https://blog.csdn.net/hp_yangpeng/article/details/53899168
http://www.cnblogs.com/zrtqsk/p/3776328.html

相关文章

  • iOS多线程 NSOperation

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程 pthread、NSThread

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程: GCD

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程运用

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程基础

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • 多线程介绍

    一、进程与线程 进程介绍 线程介绍 线程的串行 二、多线程 多线程介绍 多线程原理 多线程的优缺点 多线程优点: ...

  • iOS进阶之多线程管理(GCD、RunLoop、pthread、

    深入理解RunLoopiOS多线程--彻底学会多线程之『GCD』iOS多线程--彻底学会多线程之『pthread、...

  • iOS多线程相关面试题

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • 多线程之--NSOperation

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • iOS多线程之--NSThread

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

网友评论

      本文标题:多线程

      本文链接:https://www.haomeiwen.com/subject/yaqymftx.html