线程效率问题
版本一:
有一个日志类
有A,B,C,D....等线程,每个线程需要时就去调用日志类打印日志。
版本二:
有个日志类,自己有一个监控线程,查看内部的一个日志消息队列,如有日志消息就Pop打印,没有就睡眠。
有A,B,C,D.....等线程,每个线程有需要就将日志消息push到日志类的消息队列中。
版本一和版本二的效率到底那个好点?
在版本二中,我还可以控制,当队列的消息数据字节达到一定值的时候才去pop打印,这样就起到了一个先将消息缓存,然后到达一定量时,才去打印,节省了IO时间,但是在控制方面,遇到很多问题。
我的想法是使用2个队列,2个队列的状态一定是一个pop状态,一个是push状态,当pop状态的队列消息为0并且push状态的消息队列到达一定字节时,转换状态....
看到win32中的线程消息队列,和界面里涉及的消息队列,我想知道里面的具体实现和原理,有谁跟我说说不?
有一个日志类
有A,B,C,D....等线程,每个线程需要时就去调用日志类打印日志。
版本二:
有个日志类,自己有一个监控线程,查看内部的一个日志消息队列,如有日志消息就Pop打印,没有就睡眠。
有A,B,C,D.....等线程,每个线程有需要就将日志消息push到日志类的消息队列中。
版本一和版本二的效率到底那个好点?
在版本二中,我还可以控制,当队列的消息数据字节达到一定值的时候才去pop打印,这样就起到了一个先将消息缓存,然后到达一定量时,才去打印,节省了IO时间,但是在控制方面,遇到很多问题。
我的想法是使用2个队列,2个队列的状态一定是一个pop状态,一个是push状态,当pop状态的队列消息为0并且push状态的消息队列到达一定字节时,转换状态....
看到win32中的线程消息队列,和界面里涉及的消息队列,我想知道里面的具体实现和原理,有谁跟我说说不?
...全文
相关推荐
个人总结40个Java多线程面试问题和答案
Java多线程面试问题和答案总结Java多线程是一种高级的编程技术,能够充分发挥多核CPU的优势,防止阻塞,简化模型建立,提高程序的效率和可维护性。
线程并发时 本地变量和Lock锁的效率比较
这意味着每个线程都拥有自己的变量实例,不会与其他线程共享,从而避免了数据竞争的问题。在Java中,可以使用`ThreadLocal`类来创建线程本地变量。
进程和线程的常见面试问题
在设计高并发系统时,合理地利用进程和线程特性,能够有效地提高系统效率和响应速度。
多线程处理大数据叠加的问题
在多线程编程中,除了线程同步和线程安全问题,还需注意线程的创建和销毁开销。频繁地创建和销毁线程会消耗大量的系统资源,降低程序的效率。因此,合理地管理线程池成为提高多线程效率的一个重要策略。
Python 多线程抓取图片效率对比
GIL的存在是为了确保在解释器层面的线程安全性,避免同一时刻多个线程对Python对象进行操作,引发数据不一致的问题。


