Java多线程学习小结

首先要理解何为多线程程序:


1、单任务和多任务:
单任务:指系统每次只能做一件事
多任务:指系统可以同时做多件事
在多任务操作系统里,一个任务一般对应一个进程,也可以包含多个进程。

2、进程和线程
进程:指每个独立程序在计算机上的一次执行活动。
线程:一个进程中可以进行多个任务,每个任务通常称为一个线程。这种只能执行一个任务的程序称为单线程程序,而能同时执行多个线程的程序称为多线程程序。

3、单线程程序:在同一时间只能执行一个任务。
在此之前,编写的JAVA程序都是单线程程序。他是从main方法开始一行一行代码往下执行完后回到main方法。在运行单线程程序时,JVM会自动启动一个进程,这个进程称为主进程;接着JVM找到程序入口点main方法;然后执行main方法,这时会自动产生一个线程,这个线程称为主线程。当main方法执行完毕,主线程退出,主进程退出,程序执行结束。

4、多线程程序:多线程程序在同一时间内可以同时执行多个任务。在运行多线程程序时,JVM也会自动启动一个主线程和一个主进程,而在执行main方法过程中,可以根据需要手动创建线程来执行多个任务,这种手动创建的线程称为子线程。当main方法执行完毕,主线程退出,子线程也会强制退出,主进程退出,程序执行结束。


多线程程序的有点如下:

多线程的优点:
1)改善应用程序的响应,这对图形界面程序更有意义。当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不能响应键盘、鼠标、菜单的操作。而采用多线程技术,将耗时的操作放置到一个子线程中执行,而界面仍然响应用户的操作,这样可以增强用户体验。

2)提高计算机系统CPU利用率。多线程可以充分利用现代计算机的多CPU运算能力快的特点,从而节省时间。

3)改善程序结构,一个既长又复杂的进程可以考虑分为多个子线程,成为几个独立或半独立的子任务,这样的程序有利于理解和修改。


那么在Java中如何创建多线程程序呢?

有两种方法。一种是继承Thread类,然后重写其中的run()方法,然后调用父类的start()方法即可创建一个新线程。

另一种方法是实现Runnable接口,实现其中的run()方法,然后调用Thread类的start()方法。

利用Runnable接口实现多线程会更加灵活,因为Java是个单继承语言。


接下来我们了解一下线程的生命周期

在Java虚拟机中,一个线程创建后,它总是处于其生命周期的6种状态之一。这6种状态分别是:
1)新建状态(NEW):至今尚未启动的线程处于这种状态
2)可运行状态(RUNNABLE):正在JAVA虚拟机中执行的线程处于这种状态。
3)阻塞状态(BLOCKED):受阻塞并等待某个监视器锁的线程处于这种状态
4)等待状态(WAITING):无限期的等待另一个线程来执行某一个特定操作的线程处于这种状态
5)超时等待状态(TIMED_WAITING):等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态
6)终止状态(TERMINATED):已退出的线程处于这种状态。


多线程的程序有时会因为多个线程都会访问同一块内存空间而导致出现数据不同步的情况。所以要实现线程同步。

Java中可以用synchronized关键字来实现线程同步。








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值