zoukankan      html  css  js  c++  java
  • Java基础--第二十三天

    多线程:         多条执行单元

             进程:正在运行的应用程序

             线程:进程的执行单元,一条执行路径

                       迅雷下载,360清理

             多线程程序实现:

                       线程依赖于进程存在,Thread类

                                子类继承

                                子类重写run方法

                                调用strart(),让线程启动,调用run()方法

                                         同一个线程对象连续两次启动,报错:表示该线程状态有问题

                                getName()方法:标志不同线程,获取线程名称

                                setName():更改线程名字

                       线程随机性:

                                程序执行,抢占CPU资源,CPU在多个程序间切换。

                      

                       第二种实现:

                                创建类,实现Runnable接口

                                重写run方法

                                创建类的实例

                                把类的实现作为Thread的构造参数,创建Thread对象引用

                                         Thread.currentThread().getName()

                                         优势:

                                                   避免了单继承的局限性;

                                                   实现接口的方式只创建一次,更好的实现了数据与操作的分离。

                                         买票代码:

                                                   A:共享数据;两种方式;

                                                   B:卖出负数,卖出相同票--解决问题方式

                                                            【线程的随机性和延迟性】

                                         找问题出处:

                                                   A:看有没有共享数据;

                                                   B:看共享数据的操作是不是多条语句;

                                                   C:看是不是在多线程程序中

                                                   解决:把满足条件的代码锁在一起  synchronized

                                         锁对象:同步代码块的锁是任意对象

                       同步方法:把锁就在方法上---线程安全问题

                                this对象

                                静态方法:类名.class   Class【字节码文件】类型的对象

                       死锁

                                被同步的代码越少越好,建议使用同步代码块

                                若一个方法全部被同步了,就用同步方法

            

             线程间的通信:

                       学生信息录入与输出:多线程随机性

                                录入一个,输出一个---同一个

                                学生 信息录入  信息获取  集中测试类

  • 相关阅读:
    webpack学习最基本的使用方式(一)
    exports default 和export的使用方式
    vue兄弟组件之间的传值方式
    vue组件之间的传值方式
    vue组件创建学习总结
    vue实例生命周期钩子
    this 的工作原理
    node版本升级参考
    ES6 promise学习
    弹性布局学习总结
  • 原文地址:https://www.cnblogs.com/zhidianhcuan/p/4430249.html
Copyright © 2011-2022 走看看