一.多线程的概念:
若一个进程同时并行执行多个线程,就支持多线程
-
一个进程中多个线程共享相同的内存单元/内存地址空间
-
他们从一个堆中分配对象,可访问相同的变量和对象,这使得线程间的通信更简便,高效
-
多个线程 操作共享的系统资源可能会带来安全隐患
内存中进程和线程的关系:
虚拟机栈和程序计数器--> 每个线程一份
方法区和堆-->每个进程一份
一个进程中多个线程共享方法区和堆
二.多线程的优点及缺点:
以单核cpu为例:
只用单个cpu先后完成多个任务,比用多线程完成时间短(切换线程等也需要耗费时间),为什么仍需要多线程?
优点:
①提高应用响应.对图形化界面更有意义,可增强用户体验
②提高cpu利用率
③改善程序结构,将长又复杂的进程分为多个线程,独立运行,利于理解和修改
缺点:
①线程也是程序,需要占用内存,线程越多占用的内存就越多
②多线程需要协调和管理,需要CPU时间跟踪线程
③线程之间对共享资源的访问会互相影响,必须解决竟用共享资源的问题