多线程
童真的烂漫
这个作者很懒,什么都没留下…
展开
-
优先级反转与死锁
1.优先级反转指资源被锁时低优先级任务抢占高优先级任务。 举例:任务A、B、C,优先级从低到高依次为1、2、3,所有任务都是完全抢占式,任务A和C共享资源R。 1.任务A运行,并对资源R加锁; 2.任务C被激活抢占任务A,并尝试对资源R加锁,因此C进入WAITING状态,A从被抢占的地方恢复; 3.任务B被激活并抢占任务A,任务B成功执行; 4.任务A恢复执行并释放资源R,任务A执行完成;转载 2016-01-05 15:43:42 · 2877 阅读 · 1 评论 -
线程的7种状态及相互转换
小小的作下解释: 1、线程的实现有两种方式,一是继承Thread类,二是实现Runnable接口,但不管怎样,当我们new了这个对象后,线程就进入了初始状态; 2、当该对象调用了start()方法,就进入可运行状态; 3、进入可运行状态后,当该对象被操作系统选中,获得CPU时间片就会进入运行状态; 4、进入运行状态后情况就比较复杂了 4.1、run()方法或main()方法结束后,线程就进转载 2016-01-05 15:59:17 · 973 阅读 · 0 评论 -
进程与线程的区别
线程是指进程内的一个执行单元,也是进程内的可调度实体. 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。 与进程的区别: 地址空间:线程是进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;地址空间大小与cpu位数有关。比如:16位的cpu,地址空间大小就为2^16. 资源拥有:进程是资源分配和拥有的单位,同转载 2016-01-14 18:36:15 · 481 阅读 · 0 评论 -
使用pthread_mutex_t锁的例子
posix下抽象了一个锁类型的结构:ptread_mutex_t。通过对该结构的操作,来判断资源是否可以访问。顾名思义,加锁(lock)后,别人就无法打开,只有当锁没有关闭(unlock)的时候才能访问资源。 最简单的用法:pthread_mutex_t lock; //初始化锁变量&lock。第二个参数为锁属性,NULL值为默认属性。 pthread_mutex_int(&lock, NULL)原创 2016-03-15 15:06:00 · 1498 阅读 · 0 评论 -
iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码)
原文:iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码) 进程 正在运行中的程序被称作进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间。 线程 进程中的一个对立的执行路径被称为线程,一个进程中至少包含一条线程,该线程被称为主线程。 多线程 多创建一条或者多条线程的,目的就是为了开启一条新的执行...转载 2016-09-20 16:15:10 · 771 阅读 · 0 评论 -
iOS开发多线程篇—多线程简单介绍
一、进程和线程1.什么是进程进程是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。比如:打开QQ、Xcode,系统就会分别启动2个进程 2.什么是线程线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行,1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)。比如:使用酷狗播放音乐、使用迅雷下载电影,都需要在线程中执行. 3转载 2016-01-04 12:13:44 · 497 阅读 · 0 评论