多线程

作者: Suavitygogo | 来源:发表于2017-03-04 16:31 被阅读0次

程序启动后变为进程,进程由单或多个线程组成。

多线程:并行,共享资源,实现多任务。

五个状态:新建,就绪,运行,阻塞,死亡

JVM的线程调度模式采用了抢占式模式,即根据线程的优先级来获取CPU的使用权。

主线程:JVM调用程序main()所产生的线程。

当前线程:一般指通过Thread.currentThread()来获取的进程。

后台线程:指为其他线程提供服务的线程,也称为守护线程。JVM的垃圾回收线程就是一个后台线程。

前台线程:是指接受后台线程服务的线程,其实前台后台线程是联系在一起,就像傀儡和幕后操纵者一样的关系。傀儡是前台线程、幕后操纵者是后台线程。由前台线程创建的线程默认也是前台线程。

创建多线程的方法:Thread类实际上也是实现了Runnable接口的类

a.实现Runnable接口,实现run方法<线程体>,调用方式:new Thread(new MyRunnable()).start();

b.继承Thread类,重写run方法<线程体>,调用方式:new MyThread().start();

常见方法:

start():新建的线程进入Runnable状态

run():线程进入Running 状态

isAlive():是否在活动状态,如果线程已经启动且尚未终止,则为活动状态。如果是活动状态,返回 true;否则 false

wait():JVM会把该线程放入等待池中,线程进入等待状态,等待被notify,这是一个对象方法,而不是线程方法

notify() / notifyAll():唤醒其他的线程,这是一个对象方法,而不是线程方法

yield():线程放弃执行,使其他优先级不低于此线程的线程有机会运行,它是一个静态方法

getPriority() / setPriority():获得/设置线程优先级(1->10),默认5

sleep():JVM会把该线程置为阻塞状态,线程睡眠指定的一段时间

join():JVM会把该线程置为阻塞状态,调用这个方法的主线程,会等待加入的子线程执行完成

setDaemon(thread):设置后台线程(守护线程)

同步机制:控制资源的一致性,加锁

synchronized: 同步方法和对象

volatile:同步变量<除final常量外其余均可修饰>

相关文章

  • 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/rbljgttx.html