zoukankan      html  css  js  c++  java
  • java 线程的简单理解

         想要实现线程可以继承Thread也可以实现接口runnable,在类中重写 run()方法在主函数调用start方法就可以开辟线程。

         对于java对象都有一个wait()和notify()、notifyAll()方法这是线程对这个对象资源的使用顺序的调和,在调用这些方法钱必须先使用同步锁synchronized(对象)将方法用在锁的里面就可以了。

         一般来说,调用start()方法后run内的内容结束该线程就自动结束了,但是如果里面有线程还在等待某对象则通过人物管理器的详细信息可以看到该进程一直存在,并且导致这个项目文件在myEclipse中无法删除,这时只要在任务管理中的详细信息里将这个程序的进程强制关闭就行了。

    下面是我做测试的代码:


       public class MyThread extends Thread{

        public String li="li123";
        public MyThread(String obj){
            super(obj);
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub

            MyThread a=new MyThread("jiangzhongxi");
            NotifyThread b=a.new NotifyThread();
            a.start();
            b.start();
        }

        public void run(){
            System.out.println("创建一个线程1使用li对象");
            try {
                System.out.println("线程1使用li对象4秒");
                sleep(4000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            synchronized(li){
                li.notifyAll();
                System.out.println("该线程1对li对象的使用完毕,已经通知其余所有等待的线程"+li.intern());
            }
        }
        
         class NotifyThread extends Thread {  
               
                public void run() {  
                    System.out.println("创建一个线程2使用li对象");
                    synchronized (li) {  
                        try {
                            System.out.println("线程2等待!li对象");
                            li.wait();
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        
                    }  
                    System.out.println("线程2结束!");
                }  
            };  
    }
  • 相关阅读:
    如何找回未保存过的 Excel 文件?
    js 下关于json的销毁和添加
    width:100%和width:auto区别
    在ie6下的png图片的兼容问题
    关于input=file的用法
    div+Css绝对定位(absolute)和相对定位(relative)的总结
    onmouseenter和onmouseleave的兼容性问题
    ckfinder的配置使用
    破解ckfinder2.3 去除版本号和标题提示
    jQuery制作图片的等比例缩放
  • 原文地址:https://www.cnblogs.com/xizhenghe/p/6056432.html
Copyright © 2011-2022 走看看