多线程

实现多线程常用的有两个方法:

正则表达式匹配汉字:[\u4E00-\u9FA5]

1:继承Thread类

2:实现Runnable/Callable接口

相对而言,实现接口要相对比继承Thread类好,原因主要有2

1:继承了Thread类以后,就不能继承其他类,只能单继承,存在局限性

2:继承Thread类,不能用一个实例创建多个线程,但实现Runnable接口,该类的一个实例同时建立多个线程,Runnable接口适合资源共享

通过以上两个方式,都需要重写run()方法,run()方法体中的代码块就是这条线程需要执行的内容

在多线程中,常用的方法包括:

1:run()   【方法体中的代码块就是这条线程需要执行的内容】

2:start()   【启用线程】

3:getPriority() 【返回线程的优先级】

4:isAlive()  【测试线程是否还活着】

5:join()   【加入一个线程,直到该线程死亡】

6:sleep(long millis) 【线程休眠多少毫秒,进入阻塞状态】

7:yield()  【暂停当前正在执行的线程对象,并执行其他线程。让出这次执行的机会】

线程同步锁

1:直接在方法前面加修饰符:synchronized  

2:synchronized (锁住的对象){同步代码块}

什么时候同步监视器释放加锁?

1:同步代码块或方法执行完成

2:在代码块中遇到break ,return跳出了代码块

3:执行同步代码块或同步方法时遇到了未捕获的异常

4:调用了同步监视器的wait(0方法

wait()【控制线程暂停,释放同步监视器的加锁,会一直等待,直到收到“唤醒”通知】

notify() 【发出“唤醒”通知】

notifyAll() 【发出“唤醒”通知】

posted @ 2016-05-18 19:37  psbyking888  阅读(248)  评论(0编辑  收藏  举报