欢迎来到天天文库
浏览记录
ID:8959346
大小:107.50 KB
页数:9页
时间:2018-04-13
《java线程与模式总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、线程是Java的一大特色,从语言上直接支持线程,线程对于进程来讲的优势在于创建的代价很小,上下文切换迅速,当然其他的优势还有很多,缺点也是有的,比如说对于开发人员来讲要求比较高,不容易操作,但是Java的线程的操作已经简化了很多,是一个比较成熟的模型。很多时候,我们都用不到线程,但是当我们有一天不走运(或者走运)的时候,我们必须要面对这个问题的时候,应该怎么办呢?本文是我的学习笔记和一些总结,试图解决这个问题,引领还没有接触过Java线程的开发人员进入一个Java线程的世界,其实很多东西在网路上已经有朋友总结过了,不过我感觉没有比较循序渐进,要么
2、太基础,要么太高深,所以这边我由浅到深的总结一下。但是很显然,我的资历尚浅,能力也很有限,如果有什么错误还望不吝赐教!麻烦发送mail到:fantian830211@163.com而且,这些大部份的都有源码,如果需要也可以发mail到这个邮箱,真的非常希望有人能指正我的错误!(一)基本的API介绍1. 如何创建一个可以执行的线程类 创建一个线程有两个办法:继承Thread类或者实现Runnable接口。 首先:继承Thread类 这里一般只需要我们来重写run这个方法。下面是代码:publicclassSimple
3、ThreadextendsThread{ publicSimpleThread(){ start(); } @Override publicvoidrun(){ while(true){ System.out.println(this); //Implyotherthreadcanrunnow,butwecannotassumethatitwill //
4、workwelleverytime,actually,mostoftimewecangetthesame //result,butnottoacertainty. //yield(); try{ sleep(100); }catch(InterruptedExceptione){ e.print
5、StackTrace(); } } }}其次:实现Runnable接口,代码如下: PublicclassInnerimplementsRunnable{ privateThreadthread; publicInner(Stringname){ thread=newThread(this,name); thread.start();
6、 } publicvoidrun(){ while(true){ try{ Thread.sleep(10); }catch(InterruptedExceptione){ thrownewRuntimeException(e);
7、 } } }2. 几个常用的API这边介绍几个常见而且重要的的线程API,这边JDK文档有更加详细的说明,其实JDK的文档就是个很好的学习资料,常备很重要哦!方法说明start使线程开始执行,实际上这个方法会调用下面的run这个方法,如果这个线程已经开始执行,则会扔出IllegalThreadStateExceptionsleep是当前已经运行的线程休眠一段时间。如果当前线程已经被别的线程中断的话,将会扔出InterruptedException,而且in
8、terrupted标志也会被清空。这个方法有两个版本,具体参看JDK文档。run线程执行的业务逻辑应该在这里实现。join等待另外一个线
此文档下载收益归作者所有