多线程

作者: 何綮超 | 来源:发表于2018-06-04 09:17 被阅读0次

多线程主要考虑的是多个线程对共有资源的冲突!!!

多线程的不确定性!

一、基础概念

实现多线程有两种方式 实现Runnable接口、 继承Thread (实际Thread也是实现Runnable接口) 重写对应的run()方法

调用start()方法是启动线程 调用run()方法其实相当只是调用了这个类的run(),并没有开启线程!

二、synchronized(互斥锁,共用资源线程串行依次执行)

1、在方法上加上synchronized,那么对于同一实例,会依次等待,但对于不同实例来说没效果!(执行完毕或抛出异常则释放锁)

2、锁的粒度要尽量小

3、经典的单例模式(懒汉中不建议使用直接在genInstance()方法上加锁,虽然能达到效果,但效率低)

经典 double check

三、interrupt 中断:将在blocked或wait pool中的线程结束阻塞状态,重新回到runnable就绪状态/lock pool(ps,执行interrupt后并不是立刻将该进程回到runnable,有调度时间差!!! 多线程调度都有时间差)

interrupt

四、join

在thread1中调用thread2().join

五、wait 

调用wait(),进入等待池(特殊的阻塞),只有获得锁的线程才可以获取执行资源

wait和notify必须在synchronized方法或块中

sleep()方法会释放CPU,但不释放锁!

自私线程:在run中设置了大循环的线程

礼貌线程:在run中主动调用yield()方法

六、J.U.C

后续补充

相关文章

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