介绍
在上一篇c#自己实现线程池功能(一)中,我们基本实现了一个可以运行的程序,而不能真正的称作线程池。由于是上篇中的代码有个致命的bug那就是没有任务是并不是等待,而是疯狂的进行while循环,并试图lock任务链表,这样带来的问题的就是性能相当低下,程序反映速度很慢(当加入一个新任务后,要过很久这个job才开始运行)造成的原因就是刚才所说的。
为了解决这个问题我们就需要使用某种方法使得程序...
                            
                            
                                分类:
编程语言   时间:
2014-10-20 21:29:51   
                                阅读次数:
271
                             
                    
                        
                            
                            
                                1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗?Java1234567new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stub}}).star...
                            
                            
                                分类:
编程语言   时间:
2014-10-20 21:06:29   
                                阅读次数:
227
                             
                    
                        
                            
                            
                                线程池的技术背景
在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源,所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些"池化资源"技术产生的原因。比如大家所熟悉的数据库连接池正是遵循这一思想而产生的,本文将介绍的线程池技术同样符合这一思想...
                            
                            
                                分类:
编程语言   时间:
2014-10-20 19:30:31   
                                阅读次数:
212
                             
                    
                        
                            
                            
                                一、服务器,好了,废话不多说,我们先来看看服务器部分,我这里用到线程池,至于为什么用线程池,不知道的童鞋可以去我的另一篇blog看看:http://blog.csdn.net/weidi1989/article/details/7930820。当一个用户连接上之后,我们马上将该用户的socket丢入...
                            
                            
                                分类:
其他好文   时间:
2014-10-20 16:55:10   
                                阅读次数:
197
                             
                    
                        
                            
                            
                                AsyncTask允许你在你的用户界面上执行异步操作。它在一个子线程中执行耗时的操作,然后在UI线程上发布执行结果,而不需要你来处理Thread和Handler。
        要使用AsyncTask,你必须继承AsyncTask和实现doInBackground()回调方法,AsyncTask运行在后台的一个线程池中。若要更新你的UI,你应该实现onPostExecute()方法,它从doInBackground()方法中获取的结果,并运行在UI线程中,这样你就可以安全地更新你的UI。你可以在UI线程...
                            
                            
                                分类:
移动开发   时间:
2014-10-18 18:25:46   
                                阅读次数:
172
                             
                    
                        
                            
                            
                                AsyncTask的实现原理就是封装了的线程池,具体见AsyncTask实现原理。在1.5中初始引入的时候, AsyncTask 执行( AsyncTask.execute() )起来是顺序的,当同时执行多个 AsyncTask的时候,他们会按照顺序一个一个执行。前面一个执行完才会执行后面一个。这样...
                            
                            
                                分类:
其他好文   时间:
2014-10-18 08:34:41   
                                阅读次数:
221
                             
                    
                        
                            
                            
                                线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。比 如:一个应用要和网络打交道,有很多步骤需要访问网络,为了...
                            
                            
                                分类:
移动开发   时间:
2014-10-17 20:20:55   
                                阅读次数:
253
                             
                    
                        
                            
                            
                                相关概念:线程池可以看做容纳线程的容器;一个应用程序最多只能有一个线程池;ThreadPool静态类通过QueueUserWorkItem()方法将工作函数排入线程池;每排入一个工作函数,就相当于请求创建一个线程;线程池的作用:线程池是为突然大量爆发的线程设计的,通过有限的几个固定线程为大量的操作服...
                            
                            
                                分类:
编程语言   时间:
2014-10-17 20:16:40   
                                阅读次数:
186
                             
                    
                        
                            
                            
                                DNS
使用 require('dns') 引入此模块。dns
 模块中的所有方法都使用了 C-Ares,除了 dns.lookup 使用了线程池中的 getaddrinfo(3)。C-Ares
 比 getaddrinfo 要快得多,但系统解析器相对于其它程序的操作要更固定。当一个用户使用 net.connect(80,
 'google.com') 或 http.get({
 hos...
                            
                            
                         
                    
                        
                            
                            
                                线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, Bl...
                            
                            
                                分类:
编程语言   时间:
2014-10-17 18:21:17   
                                阅读次数:
233