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

                   死锁

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

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

        

         线程间的通信:

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

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

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

 

更多相关文章
  • 所谓的"托盘",在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分.在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区. 一 .原理 1.最小化的原理:首先要将窗口隐藏,然后 在绘制图标. 2.恢复的原理:将窗口显示,再将托盘 ...
  • vb.net反射机制 再次做机房收费系统出了点小状况,当运用反射机制生成D层类的对象的时候无法获取到类文件,代码如下,而相同的代码在第一次做机房收费系统的时候并没有报错. Public Class DataAccess '从配置文件获取响应数据库的的字符串这里是sql ReadOnly db As ...
  •   为了解决tomcat在大进行大并发请求时,出现内存溢出的问题,请修改tomcat的内存大小,其中分为以下两种方式: 一.使用 catalina.bat 等命令行方式运行的 tomcat 查看系统最大支持内存命令:java -Xmx1024m -version 1.修改 tomcat\bin\Ca ...
  • mysql高可用有很多方案,如mmm,mysql cluster等,但都无法真正应用到生产环境.偶然间发现mha(master high availability),目前在mysql高可用方面是一个相对成熟的解决方案,它能够在较短时间内实现自动故障检测和故障转移,通常在10~30秒内:并且在repl ...
  • 从vClient中看到一台主机连接断开,有红色报警标志,通过UCS的KVM Console打开发现,屏幕呈现紫屏! 在此之前主机一直运行正常,重启主机后主机能够进入到ESXi中,进入到UCS中看服务器的状态,如下: 根据上图的错误提示发现内存出现问题,找到出现问题的内存的插槽F1. 打开刀片服务器, ...
  • 每个月Net Applications都会发布上个月桌面操作系统份额统计数据. 这个数据可以帮助我们发现整体市场的趋势.根据这份统计数据显示,Windows 7今年1月份市占率微幅下降,从去年12月的56.26%下降至55.92%,Windows XP的市占率微幅上升,从去年12月的18.26%上升 ...
一周排行
  • Oracle有关redo log的等待事件   这两天发现开发用的数据库,在运行一些小的DML事务时,会经常出现log buffer space的事件,然后增大了redo log为300M 4组,调整了log buf ...
  • 现在,一般有一定规模的企业,基本都在其他地区有一些分公司.分厂或者办事处等机构,如何高效.安全.低投入地将这些分支机构的网络与总部的网络相互连接,成为企业信息化的一个障碍.本文介绍了一种操作简单,实现容易的VPN连接 ...
  • 在多位好莱坞女影星照片泄露的“泄密门”尚未了结,苹果公司再遭遇压力.前日,苹果公司竞争对手三星发布了一系列新手机,包括最新款的旗舰手机note 4,由于抢在了iPhone 6之前发布,隔夜美股市场,苹果股价应声大跌超 ...
  • http://www.jeasyuicn.com/css-background-image-stretching.html       background-image:url(bg.png); -moz-backg ...
  • 每经记者 蔡木子 发自深圳 每天,在深圳.珠海各海关关口,有不低于8名"水客"往返穿梭带货:一名"水客"女子,用透明胶带把手机层层绑在腰间,仅一人就携带了85部手机--这是近期 ...
  • 转载自:http://www.kuqin.com/managetool/20111119/315043.html 如何恢复旧版本 这是git入门命令中最复杂的了.因为它需要分情况考虑,而且还是一个递归的过程. 先复习 ...
  • 曾声称攻击了公司和政府机构的黑客组织Lulz Security(简称LulzSec)周六公布了一批文件,并说这些文件是它窃取的.该组织说,它在网上为时近两个月的疯狂捣乱将由此结束. LulzSec网站上发布的一封信说 ...
  • 今天将讲述:利用火车头采集A67手机电影,并导入到网站中,如果你要更多更快的教程,请访问:http://www.it28.cn/category-191.html现在以A67中的电影中的动作片为例:http://ww ...
  • Catch That Cow Time Limit: 2MS   Memory Limit: 65536K Total Submissions: 38263   Accepted: 11891 Description ...
  • 问题:自己写的一个库文件(.so)在链接后提示:  error while loading shared libraries:libtst.so: cannot open shared object file: No ...