日期:2014-05-17  浏览次数:20402 次

多线程与异步的比较,求解?
异步是不是减少线程的滥用?
那么如果我针对的用户群体不多。而且要求相应速度,是不是用多线程比较好?
多线程不是也尽快让主线程返回,腾出空余么?

现在场景是,AOP拦截记录操作日志,因为操作日志记录的东西比较多。
自己单机调试是,多线程只是一半时间还少点。

这些线程不存在共享资源。
是否多并发的情况下就用异步比较好?

------解决方案--------------------
你说的是 多线程 和 线程池吧

用线程池吧
------解决方案--------------------
多线程的使用依据场合而定。
我觉得最主要的还是合理利用计算机资源、减少等待等。

------解决方案--------------------
探讨
异步是不是减少线程的滥用?
那么如果我针对的用户群体不多。而且要求相应速度,是不是用多线程比较好?
多线程不是也尽快让主线程返回,腾出空余么?

现在场景是,AOP拦截记录操作日志,因为操作日志记录的东西比较多。
自己单机调试是,多线程只是一半时间还少点。

这些线程不存在共享资源。
是否多并发的情况下就用异步比较好?

------解决方案--------------------
探讨
引用:
异步是不是减少线程的滥用?
那么如果我针对的用户群体不多。而且要求相应速度,是不是用多线程比较好?
多线程不是也尽快让主线程返回,腾出空余么?

现在场景是,AOP拦截记录操作日志,因为操作日志记录的东西比较多。
自己单机调试是,多线程只是一半时间还少点。

这些线程不存在共享资源。
是否多并发的情况下就用异步比较好?

B/S程序如果没有必要,尽量少的使……

------解决方案--------------------


异步调用并不是要减少线程的开销, 它的主要目的是让调用方法的主线程不需要同步等待在这个函数调用上, 从而可以让主线程继续执行它下面的代码. 与此同时, 系统会通过从ThreadPool中取一个线程来执行帮助我们将我们要写/读的数据发送到网卡. 由于不需要我们等待, 我们等于同时做了两件事情. 这个效果跟自己另外启动一个线程来执行等待方式的写操作是一样的. 但是, 异步线程可以利用操作系统/.Net的线程池, 系统可以根据吞吐量动态的管理线程池的大小.