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【字节码文件】类型的对象

                       死锁

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

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

            

             线程间的通信:

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

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

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

  • 相关阅读:
    [APM] OneAPM 云监控部署与试用体验
    Elastic Stack 安装
    xBIM 综合使用案例与 ASP.NET MVC 集成(一)
    JQuery DataTables Selected Row
    力导向图Demo
    WPF ViewModelLocator
    Syncfusion SfDataGrid 导出Excel
    HTML Table to Json
    .net core 2.0 虚拟目录下载 Android Apk 等文件
    在BootStrap的modal中使用Select2
  • 原文地址:https://www.cnblogs.com/zhidianhcuan/p/4430249.html
Copyright © 2011-2022 走看看