美文网首页
多线程相关

多线程相关

作者: 玩裤 | 来源:发表于2016-09-10 13:46 被阅读0次

参考链接:
http://www.importnew.com/21353.html
http://blog.csdn.net/monkey_d_meng/article/details/6251879
https://zhuanlan.zhihu.com/p/20300609

总结:
1,线程6状态:NEW/RUNNABLE/RUNNING/BLOCKED/WAITING/TERMINATED
2,JAVA同步有4种方法:synchronized/wait/nofity,Lock/await/signal,BlockingQueue,PipedInputStream/PipedOutputStream
3,BlockingQueue:常用实现有4种(ArrayList/LinkedList/Delay~/Synchronous),主要方法有2个(put/take)

关于高并发的几个重要概念

并发和并行在外在表象来说,是差不多的。由图所示,并行则是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。所以单个cpu是不能做并行的,只能是并发。

临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有一个线程使用它,一旦临界区资源被占用,其他线程要想使用这个资源,就必须等待。

死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。就如同下图中的车都想前进,却谁都无法前进。
活锁,指事物1可以使用资源,但它让其他事物先使用资源;事物2可以使用资源,但它也让其他事物先使用资源,于是两者一直谦让,都无法使用资源。
饥饿是指某一个或者多个线程因为种种原因无法获得所需要的资源,导致一直无法执行。

阻塞:当一个线程进入临界区后,其他线程必须等待。非阻塞允许多个线程同时进入临界区
并发级别:阻塞和非阻塞(非阻塞分为无障碍、无锁、无等待)

有关并行的两个重要定律:Amdahl定律,Gustafson定律

只有当你调用线程的start方法时,线程才真正地被启动。(直接调用run方法是无法开启一个新线程的。)

线程的几种状态:New/Runanble/Blocked/Waiting/Terminated
等待状态有两种,一种是无限期等待,直到被notify。一直则是有限期等待,比如等待10秒还是没有被notify,则自动切换到Runnable状态。

Thread类中有3个变量定义了线程优先级。
public final static int MIN_PRIORITY = 1;
public final static int NORM_PRIORITY = 5;
public final static int MAX_PRIORITY = 10;
让一个高优先级的线程和低优先级的线程同时争夺一个锁,看看哪个最先完成。
当然并不一定是高优先级一定先完成。再多次运行后发现,高优先级完成的概率比较大,但是低优先级还是有可能先完成的。

public static Map m=Collections.synchronizedMap(new HashMap());
同理对于List,Set也提供了相似方法。

相关文章

  • 多线程相关

    引文: 多线程相关 OC 语言相关 内存管理相关 UI视图相关 RunLoop相关 GCD NSOperation...

  • 网络相关

    引文: 多线程相关 OC 语言相关 内存管理相关 UI视图相关 RunLoop相关 HTTP协议 HTTPS与网络...

  • iOS面试

    目录 UI视图相关 存储相关 OC 语言特性相关 Runtime相关 内存管理相关 Block相关 多线程相关 R...

  • iOS多线程之NSOperations

    相关文章:iOS多线程之NSThreadiOS多线程之GCD NSOperation(任务)与NSOperatio...

  • Android下多线程的实现

    Android下多线程相关 线程安全相关问题参考:java内存模型与线程 android下与多线程有关的主要有以下...

  • OC 语言相关

    引文: 多线程相关 OC 语言相关 内存管理相关 UI视图相关 RunLoop相关 分类 关联对象 扩展 代理 通...

  • 多线程相关

    1、Thread/runnable 1)继承Thread类 2)实现Runnable接口 2、两种启动线程方法的区...

  • 多线程相关

    1.GCD 同步/异步和串行/并发 dispatch_barrier_async dispatch_group (...

  • 多线程相关

  • 多线程相关

    1. 多线程使用的优缺点? 优点: (1)多线程技术使程序的响应速度更快 (2)当前没有进行处理的任务可以将处理器...

网友评论

      本文标题:多线程相关

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