相信之前的教程,帮助到很多的新人程序员将基础做了一个详细的介绍,通过互助的形式,狮子团里面有好多新手朋友已经开始跟着一些经验比较丰富的人一起开发项目,作者很是欣慰,互助的目的达到了,作为一名疯狂痴迷Java的开发者来说,这也是一个非常引人自豪的地方。如果你也是新手,或者疯狂的热爱Java,想要跟着经验丰富的人一起精进,更好的在Java的学习路上成长进步,狮子团欢迎你。
接下来,将为大家介绍一下关于Java基础知识中非常重要的一个点——线程初认识。

什么是线程?
进程是程序在处理机中的一次运行。一个进程既包括其所要执行的指令,也包括了执行指令所需的系统资源,不同进程所占用的系统资源相对独立。所以进程是重量级的任务,它们之间的通信和转换都需要操作系统付出较大的开销。
线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己基本上不拥有系统资源,但它可以与同属一个进程的其他线程共享进程所拥有的全部资源。所以线程是轻量级的任务,它们之间的通信和转换只需要较小的系统开销。
Java支持多线程编程,因此用Java编写的应用程序可以同时执行多个任务。Java的多线程机制使用起来非常方便,用户只需关注程序细节的实现,而不用担心后台的多任务系统。
Java语言里,线程表现为线程类。Thread线程类封装了所有需要的线程操作控制。在设计程序时,必须很清晰地区分开线程对象和运行线程,可以将线程对象看作是运行线程的控制面板。在线程对象里有很多方法来控制一个线程是否运行,睡眠,挂起或停止。线程类是控制线程行为的唯一的手段。
为什么要多线程?
1.线程协作提高效率:例如:经典的打印机例子、多线程下载等

2.提供某种额外的相关服务:好比手机厂商提供周边产品生产,厂商不可能他能停下当前手机的生产而专注周边生产,所以会新产生一个部门去做周边设备。
3.性能的提高:内存共享
创建线程的2种方法
1.写一个类(继承Thread 并重写run方法),实例化这个类,并调用start()方法。
2.实现了Runnable接口 并实现其中的run方法,这个类 可以当作是Thread类的target。

两种方式的对比
实现Runnable接口的同时还可以继承其他的类,但是继承Thread之后就不可以再继承了。
target的方式更加灵活,结构更加清晰。
带返回值的线程 见ThreadCallable类
Callable 实现方式 和Runnable类似,只不过它具有返回值的功能。
使用匿名内部类来快速定义一个线程
优点:快速,简单,直观缺点:复用性差,执行体(run方法)代码过长会影响代码可读性。
关于线程的例子:(1)打开方式一

(2)打开方式二

一个继承了Thread,并重写了run方法的类

一个实现了Runnable接口 并实现其中的run方法

一个实现了Callable接口的线程target,它可以返回值

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
