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

                       死锁

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

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

            

             线程间的通信:

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

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

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

  • 相关阅读:
    微软与谷歌盈利模式对比分析
    unity开源移动库iTween使用完整Demo
    开发过程遇到的问题和解决方法(备忘)
    微信开发基础教程
    WorkFlow基础实战
    操作系统学习笔记
    编译原理学习
    微信生态圈盈利模式分析
    数据与计算机通信学习笔记
    利用Spring.Net技术打造可切换的分布式缓存读写类
  • 原文地址:https://www.cnblogs.com/zhidianhcuan/p/4430249.html
Copyright © 2020-2023  润新知