zoukankan      html  css  js  c++  java
  • 程序的跨平台性:除了能够运行,还必须保证运行的结果。

    第二种方式:

    Class MyThread  implements Runnable{

      Public  void run(){

      Runnable target=new MyThread();

      Thread t3=new Thread(target);

      Thread.start();//启动线程

    }

    }

    P384:通过接口实现继承

     

    练习:写两个线程:

    ①  输入200个“###”②输入200个“***”

     

    下面为线程中的7中非常重要的状态:(有的书上也只有认为前五种状态:而将“锁池”和“等待队列”都看成是“阻塞”状态的特殊情况:这种认识也是正确的,但是将“锁池”和“等待队列”单独分离出来有利于对程序的理解)

           
       
         
     

     

     

                      ①              ⑴

                     ②                   ⑵

                    ③                        ⑶             run()结束

        Start()

                               OS分配CPU

     
       

     

                            CPU时间片结束

                                 yield()                      o.wait()

                                                等待锁标记

     
       

     

     

                                                     notify()

    注意:图中标记依次为

    ①输入完毕;②wake up③t1退出

    ⑴如等待输入(输入设备进行处理,而CUP不处理),则放入阻塞,直到输入完毕。

    ⑵线程休眠sleep()

    ⑶t1.join()指停止main(),然后在某段时间内将t1加入运行队列,直到t1退出,main()才结束。

    特别注意:①②③与⑴⑵⑶是一一对应的。

     

    进程的休眠:Thread sleep(1000);//括号中以毫秒为单位

    main()运行完毕,即使在结束时时间片还没有用完,CPU也放弃此时间片,继续运行其他程序。

    Try{Thread.sleep(1000);}

    Catch(Exception e){e.printStackTrace(e);}

    T1.join()表示运行线程放弃执行权,进入阻塞状态。

    t1结束时,main()可以重新进入运行状态。

    T1.join实际上是把并发的线程编程并行运行。

    线程的优先级:1-10,越大优先级越高,优先级越高被OS选中的可能性就越大。(不建议使用,因为不同操作系统的优先级并不相同,使得程序不具备跨平台性,这种优先级只是粗略地划分)。

    注:程序的跨平台性:除了能够运行,还必须保证运行的结果。

     

    一个使用yield()就马上交出执行权,回到可运行状态,等待OS的再次调用。

  • 相关阅读:
    巧用SQL生成SQL语句
    update,delete与INNER JOIN 以及删除重复数据
    sql判断各种类型的东西存在与否(参考)
    附加数据库报错823
    hibernate配置文件hibernate.cfg.xml的详细解释
    向数据库插入图片以及从数据库中读取图片并显示到jsp(数据库中存储的图片字段类型为Blob或image)
    Hibernate中hibernateTemplate()方法总结
    spring MVC之构造ModelAndView对象
    手机网站初步布局,如何建立你自己的手机网站?
    (MoMoCMS教程2)创建页面——主菜单
  • 原文地址:https://www.cnblogs.com/borter/p/10744106.html
Copyright © 2011-2022 走看看