多线程心得

来源:互联网 发布:mysql忘记root密码重装 编辑:程序博客网 时间:2024/06/14 08:24

一:首先我去想去弄明白为什么要用多线程?

因为多线程能提高执行效率,尽可能的利用CPU的资源,并且能增强用户体验。

二:那其次要知道如何利用多线程?创建多线程主要有两种方法:

                 第一种创建多线程方法:

①:创建一个线程类继承Thread类,并重写Thread类中的run方法,在run方法中编写多线程执行体。

②:在测试类中,实例化线程类,可以实例化多个线程类。

③:通过start()方法启动线程,默认执行run方法。

                 第二种创建多线程方法:

①:创建一个线程类实现runable接口,并在该线程类中重写run()方法,run中编写线程执行体。

②:实例化上面的线程类,并额外再创建一个Thread实例,如Thread t1 = new Thread("上一个线程类的对象引用放到这");

③:调用 Thread 类的 start() 方法启动线程,默认执行 run() 方法。

三:会创建多线程了,那多线程都有哪些常用方法?

currentThread() : 获取当前线程
getName() : 获取线程名称
setName() : 设置线程名称
start() : 启动线程
sleep(long millis) : 是一个静态方法,使当前线程进入睡眠状态
join() / join(long millis) : 是一个实例方法,使当前线程进入阻塞状态
interrupt() : 中断阻塞状态的线程
isAlive() : 判断当前线程是否处于存活状态
yield() : 线程让步

四:线程的生命周期是什么?这点很重要,利用一个图来解释


五:虽然可以利用多线程了,但是这样利用多线程还存在一定的弊端,就是不安全问题。所以这时就可以利用线程同步机制了。

线程同步的核心思想:将多个线程需要访问的共享数据,包装起来,视为一个整体,确保一次只有一个线程执行流访问共享数据;

线程同步方式主要有三种形式:

①:synchronized (同步监视器){

同步代码块

}

同步监视器 : 俗称“锁”,可以使用任意对象充当,必须确保多个线程持有同一把锁(同一个对象)

②:public    synchronized  void show(){

隐式的锁: this

}

③:同步锁

lock();//上锁


unlock();//解锁





1 0
原创粉丝点击