本帖最后由 夏夜猫 于 2013-9-2 22:23 编辑
Runnable接口创建方法如下:
1.定义一个类实现Runnable接口;
2.重新run方法;
3.建立Thread对象,在构造方法中,传递Runnable接口的实现类对象Thread(Runnable target);
4.调用Thread对象中的start方法,启动线程。
如下图,是老师上课时创建的一个实例(4个窗口出售100张火车票):
- <P>
- <P>
- class Ticket implements Runnable{
- private int tickets = 100;
- private Object obj = new Object();
- public void run(){
- while(true){
- synchronized(obj){
- if(tickets > 0){
- try{
- Thread.sleep(5);
- }catch(Exception e){}
- System.out.println(Thread.currentThread().getName()+"出售第"+tickets--+"张");
- }
- }
- }
- }
- }
- class ThreadDemo1{
- public static void main(String[] args) {</P>
- <P> Ticket t = new Ticket();
- Thread t1 = new Thread(t);
- Thread t2 = new Thread(t);
- Thread t3 = new Thread(t);
- Thread t4 = new Thread(t);
- t1.start();
- t2.start();
- t3.start();
- t4.start();
- }
- }</P>
复制代码 第三步红色字部分比较难懂,主要疑问有:
Thread对象如何被创建?(因为只有Object是所有类的主类,可以被直接引用才对啊)就如上题中第一个类中的打印语句Thread.currentThread().getName()是如何被调用的?
我个人觉得是和写在JDK里面的这句话"类 Thread 已实现的接口:Runnable"有关,但不知如何理解。
另外,关于currentThread()方法,具体有什么作用?
|