1.线程类的声明
线程类声明有两种方式
- 继承Thread类,重写该类的run()方法
- 实现Runnable接口,重写该接口的run()方法,此类作为Thread类的参数开启线程
线程的开启
- 线程的开启,是Thread类调用start()方法开启,然后系统会在子线程里调用run()方法运行。
2.线程的同步
线程的同步解决的是对共享资源的修改的限制。
使用关键字synchronized实现线程的同步和互斥,但synchronized修饰的部分会消耗大量资源,所以尽量使得同步的区域小一点。
- ssynchronized同步代码块,锁是任意对象
synchronized (this) // (1)
操作共享数据部分
{
- ynchronized修饰函数,表示同步函数,锁是this
Public synchronized void methodAAA()
{
同步部分
}
3.常用函数
- sleep(int millsecond),使当前线程睡眠,参数是毫秒,由Thread调用
- currentThread(),返回当前使用CPU资源的线程名,Thread调用。
- wait(),等待,可由任意对象调用,必须在同步代码中调用
- notify(),唤醒,具体唤醒对象由系统决定
- notifyAll(),唤醒所有线程池中可以被唤醒的线程
- join(),使调用该方法的线程在此之前执行完毕,也就是等待该方法的线程执行完毕后再往下继续执行。注意该方法也需要捕捉异常。
- yield(),让出执行权,让同级的线程获得运行资格
注:身体不舒服,写的很粗糙。