介绍通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行。这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占共享数据,避免竞争条件,确保数据一致性。但可惜的是,这属于阻塞性同步,所有其他线程...
分类:
编程语言 时间:
2014-10-31 18:56:36
阅读次数:
225
由于昨天在内网服务器A不小心rm -fr / ,导致服务器A完蛋,重装系统后,不知道啥原因,局域网瘫痪不能上网,最后发现内网服务器A的一个进程sfewfesfs cpu 300%。路由器被网络阻塞啦。 于是百度这个病毒:这个病毒又很变态。第一次中linux病毒,幸亏是内网,感觉比较爽。(总结网络内容,引以为戒)
1、病毒现象
服务器不停向外网发送数据包,占网络带宽,...
分类:
系统相关 时间:
2014-10-31 13:55:34
阅读次数:
240
一. 阻塞队列和普通队列:
队列是一种基本的数据类型,其典型特征是先进先出。
阻塞队列和普通队列的区别在于:
当队列为空时,从队列中获取元素的线程会被阻塞,直到其他的线程往空的队列里插入新的元素;
当队列是满的时,往队列里添加元素的操作会被阻塞,直到其他的线程从队列移除一个或多个元素;...
分类:
其他好文 时间:
2014-10-31 10:11:13
阅读次数:
211
互斥锁一个明显的缺点是他只有两种状态:锁定和非锁定。而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,他常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其他的某个线程改变了条件变量,他将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,...
分类:
其他好文 时间:
2014-10-30 22:38:05
阅读次数:
272
PHP的异步并行swoole扩展在1.7.7中内置了一个Http服务器,利用swoole_http_server可以轻松实现一个PHP的异步Web服务器,性能比php-fpm/Apache等同步阻塞的服务器高出数倍。 swoole官方还提供了redis-async,一个异...
分类:
Web程序 时间:
2014-10-30 13:40:14
阅读次数:
304
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeo...
分类:
其他好文 时间:
2014-10-29 19:01:50
阅读次数:
230
JavaScript 倾向于阻塞浏览器某些处理过程,如HTTP 请求和界面刷新,这是开发者面临的最显著的性能问题。保持JavaScript文件短小,并限制HTTP请求的数量,只是创建反应迅速的网页应用的第一步。一个应用程序所包含的功能越多,所需要的JavaScript 代码就越大,保持源码短小并不总...
分类:
编程语言 时间:
2014-10-29 18:33:02
阅读次数:
226
回滚后,自增ID仍然增加。比如当前ID是7,插入一条数据后,又回滚了。然后你再插入一条数据,此时插入成功,这时候你的ID不是8,而是9.因为虽然你之前插入回滚,但是ID还是自增了。如果你认为自增ID不应该被事务化,那么其他事务不得不等待着,检查自增ID是被使用还是被回滚,这就导致阻塞。比如下面的例子...
分类:
其他好文 时间:
2014-10-29 16:44:41
阅读次数:
158
越是看似简单、经常接触的。我们越是不知其所以然。这就是我写本文的原因。阻塞和非阻塞赋值一般使用在进程中,包括always和initial进程、assign赋值等操作中。阻塞赋值与非阻塞赋值always @(event-expression) begin ...... end同样可将采用非阻...
分类:
其他好文 时间:
2014-10-29 16:42:08
阅读次数:
263
1. Linux IO 模型矩阵2. 同步阻塞IO3. 同步非阻塞IO4. 异步阻塞IO5. 异步非阻塞IO
分类:
系统相关 时间:
2014-10-29 14:45:20
阅读次数:
206