简单介绍目前所学习到的线程

Java支持多线程,使得程序能同时执行多个任务,提高运行效率。线程是CPU调度的基本单位,比进程更轻量级,允许多个线程共享进程资源。在Java中实现多线程有两种主要方式:继承Thread类或实现Runnable接口。继承Thread类简单直接,但限制了类的继承性;实现Runnable接口则允许更多的灵活性,适合资源共享。
摘要由CSDN通过智能技术生成

Java是少数的几种支持“多线程”的语言之一。大多数的程序语言只能循序运行单独一个程序块,但无法同时运行不同的多个程序块。Java的“多线程”恰可弥补这个缺憾,它可以让不同的程序块一起运行,如此一来可让程序运行更为顺畅,同时也可达到多任务处理的目的

1.关于线程

1.1进程

程序: 是为了完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码。

而进程是程序执行的过程,它包括从代码加载、执行到执行完毕的一个完整过程,而这个过程也是进程本身从产生、发展到最终消亡的过程。

每个独立执行的程序称为进程

1.2线程

线程简单来说就是可以是可以让几个程序一起运行。

为了解决进程调度资源的浪费,为了能够共享资源,出现了线程。线程是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源,多个线程共享内存,从而极大地提高了程序的运行效率。线程是比进程更小的执行单位,线程是进程内部单一的一个顺序控制流。所谓多线程是指一个进程在执行过程中可以产生多个线程,这些线程可以同时存在、同时运行,形成多条执行线。一个进程可能包含了多个同时执行的线程。

一个或更多的线程构成了一个进程(操作系统是以进程为单位的,而进程是以线程为单位的,进程中必须有一个主线程main)。

如果一个进程没有了,那么线程肯定会消失,如果线程消失了,但是进程未必会消失。只有所有的线程都结束了,进程才会结束!!!而且所有线程都是在进程的基础之上同时运行。

1.3它们之间的关系

进程的产生,肯定会产生至少一个以上的线程;

进程关闭,该进程内的线程会全部销毁;

线程销毁,进程未必会关闭

1.4它们之间的的区别

进程:每个进程都有自己独立的代码和数据空间,进程间的切换开销大

线程:一个进程内的多个线程,共享代码和数据空间,线程间的切换开销比较小

1.5多线程

多线程就是多个任务同时进行

多线程的好处:可以更高效地利用CPU资源,同时,让固定流程的程序更加灵活;

注意:多个线程之间,谁先抢占到资源,谁就先执行

2.多线程的实现

在Java之中,如果要想实现多线程的开发,有三种形式:一种是继承Thread类,另外一种实现Runnable接口,最后一种实现Callable接口.那么接下来我会介绍部分方法,也是我现在使用较多的

2.1继承Thread类

我们可以先写一个类在继承Thread类并重写run方法

写好以后我们再去测试类去测试

在运行时我们可以看到他们同时出现了

 还有一个sleep方法,它可以使咱们的这个线程过会在运行,并释放相应的内存

 并且它会抛一个异常所以还要使用try catch去抛

2.2实现Runnable接口

 这个实现方法和继承Thread方法有一点不同

在实现Runnable接口后,还是需要Thread类下的start()方法来启动线程

2.3它俩的区别

采用继承Thread类方式:

(1)优点:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this,即可获得当前线程。    

(2)缺点:因为线程类已经继承了Thread类,所以不能再继承其他的父类。

采用实现Runnable接口方式:

(1)优点:线程类只是实现了Runable接口,还可以继承其他的类。在这种方式下,可以多个线程共享同一个目标对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。    

(2)缺点:编程稍微复杂,如果需要访问当前线程,必须使用Thread.currentThread()方法。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值