Java高级特效---多线程编程

1、什么是多线程

线程是进程中的一个执行单元,又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度。
而多线程是一种机制,它允许在程序中并发执行多个指令流,每个指令流都成为一个线程。多线程进制下的线程彼此间相互独立,容易共享数据,通过并发执行的方式来提高程序的效率和性能。

2、进程和线程的区别

  1. 线程的划分尺度小于进程,线程属于某一个进程;
  2. 进程是程序的一种动态形式,是CPU、内存等资源占用的基本单位,而线程不可以独立的占用这些资源。
  3. 进程之间相互独立,通信困难,而线程之间共享一块内存区域,通信方便;
  4. 进程在执行过程中,包含固定的入口、执行顺序和出口,而线程的这些过程会被应用程序所控制。

3、如何让一个类成为线程类

一个是实现java.lang.Runnable接口和继承java.lang.Thread类。本质上线程类是需要实现Runnable接口,只是Thread还提供了一些额外的方法。

4、解释Runnable接口和Thread类的区别

  1. 线程类继承自Thread类则不能继承其他类,Runnable接口可以;
  2. 线程类继承自Thread相对于Runnable来说,使用线程的方法方便一些;
  3. 实现Runnable接口的线程类的多个线程,可以更方便的访问同一个变量,而Thread类则需要内部类来进行替代。

5、如何启动一个线程

如果该类继承自Thread类,可以通过new关键字创建一个线程对象,执行start()方法开启一个线程。实现类Runnable接口的线程类,需要调用它的对象实例,作为Thread类构造方法的参数,创建一个Thread对象,然后调用start()方法开启一个线程。

6、如何用synchronized让线程同步

synchronized关键字代表要为某一段代码加上一个同步锁,这个锁是绑定在某一个对象上的。如果是同步代码块,需要为该synchronized关键字提供一个对象的引用;如果是同步方法,只需加一个synchronized关键字的修饰。
synchronized为某段代码加上锁之后,某个线程进入该代码之前,首先要检查该锁是否被占用,如果没有被占用才能仅需执行,否则需要等到该所被释放后才能执行。其中,线程执行完该代码就是释放锁的标志。

7、如何使用Java的线程池

线程池属于对象池,所有的对象池都有一个非常重要的共性,就是为了最大程度的复用对象。因此,线程池的最重要的特征就是最大程度的利用线程。其次Java线程池的编程模型相对于原有的多线程模型,就是线程代码和业务代码的分离。
Java提供了java.util.concurrent.ThreadPoolExecutor类来使用线程池,通过它构造的对象,可以很容易地管理线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值