关于java中线程的一些总结

关于java中线程的一些总结

      线程,在讲到线程的时候,我们必须先知道进程,那什么是进程呢?一般来说,我们把正在计算机中运行的程序就称之为进程。例如:QQ等。所谓线程就是在进程内部, 并发运程的过程(方法)。进程是并发运行的, OS将时间划分为很多时间片段, 尽可能均匀分配给正在运行的程序, 微观上看进程是走走停停的, 宏观上都在运行这种都运行的现象叫: 并发, 但是不是绝对意义上的”同时”。线程在学习过程中是一个难点问题。

      知道了一些基本概念后,我们来看看在java中怎样去创建线程。创建线程主要有两种方式:一是继承Thread类,二是实现Runnable接口。我们用第一种方式来实现创建一个线程,例如:

 

    上面用Person1这个类去继承Thread这个类,然后去覆盖run()方法。然后在主方法中创建一个线程的实例p1,然后开启线程。

     第二种方式实现创建一个线程,例如:

     上面就是利用实现Runnable接口来现实了创建一个线程的方法。我们主要是实现了run()方法。然后,在main()方法中测试。通过创建一个Person2的实例,利用实例去调用run()方法。

     知道如何创建线程后,我们接下来探讨一下线程的工作原理。首先我们需要了解线程的几个基本状态。

     1、 new 新建

     2、 Runnable 可以运行(就绪)

     3、 Running 运行(正在运行)

     4、 Block 阻塞  挂起

     5、 Dead 死亡

    各状态之间的转换入下图所示: 

线程各状态的管理:

  1)让出CPU

        Thread.yield() 当前线程让出处理器(离开Running),

    使当前线程进入Runnable等待

  2)休眠

        Thread.sleep(times) 使当前线程从 Running 放弃处理器

    进入Block状态, 休眠times毫秒, 再返回到Runnable

    如果其他线程打断当前线程的Block(sleep), 就会发生

InterruptedException.

      几种常见的创建线程的方法:使用内部类和匿名内部类来创建线程。

例:

 

 

     在线程中还有一些关于锁的问题 ,我们在用的时候一定要小心,不然程序容易出现问题。

    上面是对线程的一些总结,大家在用线程的时候一定要慎重选择,如果用不好,会出现很多问题的。

     有不足之处请指教。谢谢!

 

posted @ 2012-07-23 14:00  源&缘  阅读(1614)  评论(2编辑  收藏  举报