---->关于时间,创建线程使用是直接向系统申请资源的,这里调用系统函数进行分配资源的话耗时不好说。
---->关于资源,Java线程的线程栈所占用的内存是在Java堆外的,所以是不受java程序控制的,只受系统资源限制,默认一个线程的线程栈大小是1M(当让这个可以通过设置-Xss属性设置,但是要注意栈溢出问题),但是,如果每个用户请求都新建线程的话,1024个用户光线程就占用了1个G的内存,如果系统比较大的话,一下子系统资源就不够用了,最后程序就崩溃了。
--->对操作系统来说,创建一个线程的代价是十分昂贵的, 需要给它分配内存、列入调度,同时在线程切换的时候还要执行内存换页,CPU 的缓存被 清空,切换回来的时候还要重新从内存中读取信息,破坏了数据的局部性。
相关文章
- 11-08Java基础学习总结:多线程之(一)并发和并行,线程和进程,线程的三种创建方式,Runnable 和 Callable 的区别
- 11-08多线程的创建方式之Callable接口与线程池
- 11-082.多线程学习笔记之线程的创建方式
- 11-08Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式
- 11-08JAVA基础学习之throws和throw的区别、Java中的四种权限、多线程的使用等(2)
- 11-08java – 是否可以在不重复创建线程的情况下使用多线程?
- 11-08记一个Java多线程相关的面试题
- 11-08【Java多线程】JUC之Java并发包Concurrent发展简述(各版本JDK中的并发技术)
- 11-08java 中多线程之间的通讯之生产者和消费者 (多个线程之间的通讯)
- 11-08java多线程并发去调用一个类的静态方法安全性探讨