heguangwu 发表于 2015-12-23 10:32

回复 20# hellioncu
你说的很对,rdkafka本身并不需要一个线程,只是当时考虑是为了控制发送流量避免影响在线应用而做的


   

heguangwu 发表于 2015-12-23 10:34

能详细说说线程池+多个FIFO队列的要点吗,另外TBB是一个很大的并行库,能挑出一到两个来具体说明吗
回复 19# demilich


   

等一等 发表于 2015-12-24 22:59

新人正学习中的

等一等 发表于 2015-12-24 23:00

新人正学习中的

hjiayz 发表于 2015-12-26 04:04

并发和并行有各自的适用环境.
并发基于系统事件,开销比较小,回调甚至不需要进入事件循环.所以处理读写密集型任务非常出色.
并行有多种方案.
多进程,由于系统内部的隔离机制,稳定性更好,但是进程间通信效率不高.
多线程,由于拥有共享内存,线程间通信的效能不错,但是由此带来的同步问题也很复杂.
由于多线程的开销不小,线程池是必要的.并行的主要目的还是处理计算密集型任务.

至于楼主的案例,建一个线程池,主线程接受消息并往线程池丢数据,池中的工作线程处理任务是很常见的方案.

linux_c_py_php 发表于 2015-12-29 13:50

这个就是C/C++服务很正常设计。

程序内部按模块划分,通过接口交换数据。

有的模块内部是线程池并发,通过对数据哈希或者轮转的方式分发到多个线程里计算。 而且为了降低锁带来的性能瓶颈,一般尽量避免多线程争夺相同的资源,尽量通过大拆小的思路提高并发计算能力。

王楠w_n 发表于 2015-12-29 17:55

:victory:

mordorwww 发表于 2016-06-23 09:11

heguangwu 发表于 2015-12-17 13:52 static/image/common/back.gif
其实案例我想描述的更清楚一些,因为当时没有时间,现在补充如下:
软件功能描述,通过libpcap抓取Mysql的 ...

你为什么要搞这么多线程,是什么目的?有什么好处?
如果是多核多vcpu的话,一个vcpu一到两个线程就够了,最好是一个线程,如果不需要并发的话

karma303 发表于 2016-08-10 10:59

不懂帮顶~~
页: 1 2 [3]
查看完整版本: 线程性能到达瓶颈,并发还是并行?