JAVA 线程学习 - Thread了解

  1 public class ThreadKnow
  2 {
  3     private TimeThread timeThread;
  4     private boolean flag;
  5     
  6     public ThreadKnow()
  7     {
  8         /*************************创建线程************************/
  9          //自定义线程构建方式一  继承Thread类
 10 //        public class MyThreadExam1 extends Thread
 11 //        {
 12         
 13         //自定义线程构建方式二:实现Runnable接口
 14 //        public class MyThreadExam2 implements Runnable
 15 //        {
 16         
 17         //对于需要在线程中执行的操作,可以重写父类的run()方法,并在方法中添加操作代码
 18         
 19         /*************************线程中控制状态的使用************************/
 20         /***一***/
 21         //Thread.sleep()只能对当前运行的线程进行阻塞
 22         //sleep在进入阻塞状态后只有到达时间毫秒后自动苏醒,任意方式打断处于sleep状态的线程都将引起异常
 23         //sleep在进入阻塞状态后该线程所使用的到其他对象都将处于锁定的状态(sleep阻塞不会释放对象锁)
 24         /***二***/
 25         //当发生多个线程公用一个对象时,为防止该对象被随意使用,可以使用同步快对对象进行控制,为对象加上对象锁
 26         //对象所只能对对象有作用:即对基本数据类型时没作用的
 27 //        synchronized (list)
 28 //        {
 29 //            //操作代码
 30 //        }
 31         /***三***/
 32         //加入线程队列中,等待线程执行完毕
 33 //        timeThread.join();
 34         /***四***/
 35         //强制终止该线程
 36         timeThread.stop();
 37         /***五***/
 38         //挂起线程,但是会保留对象锁
 39         timeThread.suspend();
 40         /***六***/
 41         //继续挂起的线程,和suspend搭配使用
 42         timeThread.resume();
 43         /***七***/
 44         //将该线程加入到执行队列中,等待该线程的执行完毕
 45 //        timeThread.join();
 46         /***八***/
 47         //暂停当前正在执行的线程,并执行其他线程
 48         timeThread.yield();
 49         
 50         /***九***/
 51         //线程等待:该方法是Object对象的方法,但是也可以控制线程,而且会释放对象锁
 52 //        new Object().wait();
 53         /***十***/
 54         //线程唤醒:同样是Object对象的方法,需要搭配使用wait()使用
 55         new Object().notify();
 56         
 57         //创建线程
 58         timeThread = new TimeThread();
 59         //开启线程
 60         timeThread.start();
 61         //判断线程的状态
 62         if(timeThread.getState() == State.NEW)
 63         {
 64         }
 65         else
 66         {
 67         }
 68         //打断线程,并不能阻止线程的停止,修改线程的状态
 69         timeThread.interrupt();
 70         //暂停线程,将线程挂起
 71         timeThread.suspend();
 72         //继续线程,将使用suspend挂起的线程继续执行
 73         timeThread.resume();
 74     }
 75     
 76     public static void main(String[] args)
 77     {
 78         
 79     }
 80     /**
 81      * 显示时间的线程
 82      * @author Administrator
 83      *
 84      */
 85     private class TimeThread extends Thread
 86     {
 87 
 88         @Override
 89         public void run()
 90         {
 91             while(true)
 92             {
 93                 if(flag)
 94                 {
 95                     String time = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
 96 //                    lblTime.setText(time);
 97                     try
 98                     {
 99                         Thread.sleep(1000);
100                     } catch (InterruptedException e)
101                     {
102                         // TODO Auto-generated catch block
103                         e.printStackTrace();
104                     }
105                 }
106                 
107             }
108         }
109         
110     }
111 }

 

posted @ 2013-09-22 11:15  魏飞  阅读(285)  评论(0编辑  收藏  举报
你见

或者不见我
我就在那里
不悲不喜
你念

或者不念我
情就在那里
不来不去
你爱

或者不爱我
爱就在那里
不增不减
你跟

或者不跟我
我的手就在你的手里
不舍不弃
来我怀里
或者
让我住进你的心里
默然

相爱
寂静

喜欢
Mr Frank