在cocoachina上看到一篇文章,今天学下。 一、任务 任务:线程中那个执行的代码段。 执行任务分为两种: 1.sync(同步):等待队列的任务执行结束 dispatch_sync(dispatch_queue_t,^{ //执行代码 }); NSLog(@"hello,sync"); 直白说就 ...
分类:
其他好文 时间:
2018-03-17 17:58:12
阅读次数:
244
这篇主要讲一下Linux(CentOS)上性能性能监控的操作。 1.监控cpu使用情况--uptime 该命令将会打印出当前时间 系统运行了多久 当前登陆用户数 系统平均负载 这里的负载是单位时间内,cpu等待队列中,评价有多少个进程在等待,等待的进程越多,cpu越忙。 2.监控内存及交换分区的使用 ...
分类:
系统相关 时间:
2018-03-08 17:17:27
阅读次数:
188
1. 什么是阻塞队列? 阻塞队列(BlockingQueue) 是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程 ...
分类:
其他好文 时间:
2018-03-03 00:36:59
阅读次数:
213
1、特点: 已获取锁的线程再次请求锁,可以直接获取。 2、实现: 自定义内部类 Sync,继承 AbstarctQueuedSynchronizer : 2.1、获取锁:lock() a、公平锁: acquire(1) b、非公平锁: if (compareAndSetState(0, 1)) // ...
分类:
编程语言 时间:
2018-02-11 14:41:59
阅读次数:
155
系统优化参数总结: net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击 net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新... ...
分类:
系统相关 时间:
2018-01-31 14:44:54
阅读次数:
180
一个简单的例子,深入研究一下socket的多线程处理任务 Server端: Client端: 关于队列Queue的使用: ...
分类:
编程语言 时间:
2018-01-11 15:34:10
阅读次数:
231
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元 ...
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元 ...
分类:
其他好文 时间:
2017-12-03 13:04:54
阅读次数:
170
语义: 1.公平锁:每个线程在获取锁的时候,会先检查该锁维护的等待队列,如果该队列是空或者当前线程是第一个,则占有锁,否则按照FIFO的原则,进入等待队列,等待获取锁; 2.非公平锁:当前线程在获取锁的时候,不管该锁的维护队列种是否有其它等待线程,直接CAS,如果cas失败,则再执行公平锁的那一套; ...
分类:
其他好文 时间:
2017-11-26 16:51:31
阅读次数:
195
PV操作的含义 PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S>=0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S>0,则该 ...
分类:
其他好文 时间:
2017-11-11 21:31:50
阅读次数:
191