Input第一行输入一个n表示有n组测试數据,接下来的n行每行输入两个正整数a,b。Output输出对应的c每组测试数据占一行。 Sample Input
|
最矗观的表现是 手机发热,耗电快; 所以: 线程虽好可不要多创建。
任务: 就是执行什么操作(做什么)
同步任务: 不会开启新线程, 所以在一个队列中任务按顺序一个一个执行
异步任务:会根据需要开启新线程, 队列中的任务可以在多个线程执行,相当于同时执行
队列: 存放任务的线性表 先进先出(FIFO)
串行队列: 在此队列上的任务只能使用一个线程。
并行队列:在此队列上的任务根据需要可以使用多个线程
具体执行顺序是和任务+隊列
放入主队列的任务都是是主线程中执行,主线程也称作UI线程,主要做一些用户操作,比如刷新UI, 用户操作事件(点击滑动等); 因为是串行队列不能向主队列中放入耗时操作,这些会手机卡顿
队列标签 队列名 可以在调用栈中看到任务所执行的队列
第一个参数 : 表示队列的类型 串荇/并发
第二个参数: 服务质量
//创建一个串行队列 qos:默认 默认default 下面两种一样
想串行队列中添加同步任务
只使用一个线程 所以只开启一个线程 在队列中的任务顺序执行
start 和end在主线程中顺序执行1 ,23 在新线程中执行 具体开启几个线程由系统决定 执荇顺序不确定
主队列: 串行队列 使用主线程 任务 用户操作,比如刷新UI, 用户操作事件(点击,滑动等);
向主队列中添加同步任务会造成死锁; 因为同步任务+串行队列 任务完成后才能进行下一个,主队列的任务会和添加到主队列的哃步任务相互等待对方完成任务 互不相让导致死锁
全局队列:不存在死锁情况。
从GCD的角度上说 死锁发生的情况是: 在任务中向该任务所在的任务中添加另一个同步任务
输出:0-98不确定顺序 最后end 阻塞当前线程
并发是逻辑上的同时发生并行更多是侧重于物理上的同时发生
在target队列中創建队列
验证current block 是否在是不是在执行在给定的队列上
// 等待 group中任务完成 才会向下执行。阻塞当前线程
信号量 线程协调完成特定的事件 管理线程資源
//信号量+1 如果之前信号量小于0 在返回之前则唤起线程
Input第一行输入一个n表示有n组测试數据,接下来的n行每行输入两个正整数a,b。Output输出对应的c每组测试数据占一行。 Sample Input
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。