提到线程,首先要从“进程”开始说。对于一般程序来说,其结构可以概括为一个入口,一个出口和一个顺序执行的语句序列。在程序投入运行时,系统从程序入口开始执行程序直至程序结尾,从出口退出时,整个程序结束。这样的语句结构称为进程,它是程序的一次动态执行,对应了从代码加载、执行到完毕的一个完整过程;或者说,进程就是程序在处理机中的一次运行。
线程是进程执行过程中产生的多条执行线索,是比进程更小的执行单位,在形式上同进程相似-----一个顺序执行的语句序列完成某个功能,不同的是,线程没有进口,没有出口,因此不能自动进行,必须栖身于进程中,由进程触发执行。多线程就是让CPU在同一时间执行多个程序。
下面是思维导图总结:
多线程广泛的应用到程序中,这个博客是以java为参考编写的,java程序是面向对象的设计,它的所有程序都封装在类中。java程序为了达到多线程的效果,把多线程或执行环境(execution context)当做一个封装对象,包含CPU及自己的程序代码和数据,有虚拟机提供控制。java类库中的类java.lang.Thread允许创建这样的线程,并可控制所创建的线程。
死锁是资源的无需使用带来的,解决死锁的方法就是给资源施加排序。