有没有办法提高Thread.start方法的性能。我知道Thread.start会在一个单独的线程中调用线程的run方法,但我发现它需要比在调用上下文中简单方法调用更多的时间。
有没有办法提高Thread.start方法的性能。我知道Thread.start会在一个单独的线程中调用线程的run方法,但我发现它需要比在调用上下文中简单方法调用更多的时间。
开启线程一定会涉及到一定的开销,你可能需要考虑线程池。
http://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html
启动线程、上下文切换和销毁线程都需要宝贵的CPU周期。因此最好使用适合您要求的线程池。
有各种选项可用:
缓存线程池 - 缓存一些线程以提高性能
单线程池执行器 - 单个线程执行器
根据您的硬件配置和其他参数创建n个线程可以减少切换。
执行器优于Thread.start()
的优点:
线程的创建总是需要时间的。传统的方法
new Thread(runnableObj).start();