Java多线程技术详解理论篇

多线程技术在现实中已经应用的非常普遍,java也给与了非常方便的技术实现,只需要调用相应的类就可以实现开启多个线程的执行。但是究竟什么时候使用多线程技术,多线程执行效率是否一定比单线程要高呢?相信很多人在开发者中也是模棱两可,下面是我对于多线程技术的思考和总结

jesen
1
2020-03-22 08:25:31
文档目录
我的书签
 

多线程到底该怎么理解,什么是多线程

说到什么是线程必须先了解什么是进程,进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程,比如:wechat.exe、qq.exe;线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如wechat.exe进程中可以运行很多线程。线程总是属于某个进程,一个进程中必须有一个线程(也就是主线程),进程中的多个线程共享进程的内存。关于进程和线程的详解可以查阅其他文档

从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用来实现进程的调度和管理以及资源分配。

多个线程或进程”同时”运行只是感官上的一种表现。事实上进程和线程是并发运行的,操作系统的“线程调度机制“将时间划分为很多时间片段(时间片),尽可能均匀分配给正在运行的程序,获取CPU时间片的线程或进程得以被执行,其他则等待。而CPU则在这些进程或线程上来回切换运行。微观上所有进程和线程是走走停停的,宏观上都在运行,这种都运行的现象叫并发,但是不是绝对意义上的“同时发生“。

所以多线程不等于真正意义上的并发执行,计算机CPU实现在现实逻辑上不可能是真正的并发执行的(即使现在的CPU是多核多线程),试想一下在计算机中、在同一时刻会有多少的任务需要执行,打开操作系统的“任务管理界面“可以看到在当前操作系统下正在运行的程序列表数量有多少,这也表明了操作系统会有一套“进程调用机制”和“线程调用机制”的程序实现来运行这么多的任务,关于这方面的技术栈属于操作系统原理与实现了,读者可以查阅相关方面的书籍进行了解
友情提示