当前位置: 首页 > wzjs >正文

网站如何报备东莞网站关键词优化效果

网站如何报备,东莞网站关键词优化效果,seo营销方案,营销方案模板概念第一个多线程程序 可以通过查看jdk路径来找到jdk的控制可以通过jconsole来查看线程。创建线程这是实现多线程的其中一种方法,继承Thread类,实现run方法,之后实例化继承了Thread类的MyThread方法,调用start方法,就会…

概念

 

 

第一个多线程程序 

可以通过查看jdk路径来找到jdk的控制

可以通过jconsole来查看线程。

创建线程

这是实现多线程的其中一种方法,继承Thread类,实现run方法,之后实例化继承了Thread类的MyThread方法,调用start方法,就会自动创建一个线程去执行run方法,如果直接调用run方法是不会创建新的线程的。

实现Runnable接口,也要实现run方法,但是和继承Thread类的不同,耦合度较低,在实例化Thread时将实例化继承了Runnable接口的对象传递,start执行的就是这个run方法

其他变形

多线程的优势-增加运行速度

Thread类以及常见方法

Thread的常见构造方法

Thread的常见属性

比较重要的就是判断后台线程和判断是否存活的方法。前台线程可以决定进程是否结束,只要还有一个前台线程运行,进程就不会终止,后台线程就算在运行,只要前台线程都结束了,进程还是要结束。

启动⼀个线程 - start()

终止线程

 

可以自定义一个变量,约定好在这个变量修改为约定值时,就终止线程。

Thread对象调用,该对象对应的线程终止。

在一些情况下,有要求,线程要有结束的先后顺序,那么就可以通过线程的对象,来等待线程,来做到线程的结束顺序变为可控。

获取当前线程引用

这是一个静态方法,可以直接通过类来调用,返回的时当前调用该方法的类对象的引用。

休眠线程

线程的状态

观察线程的所有状态

Waiting是

线程状态和转移的意义

 

多线程带来的的风险-线程安全 (重点)

观察线程不安全

线程安全的概念

线程不安全的原因

可见性

指令重排序

解决之前的线程不安全问题

synchronized 关键字 - 监视器锁 monitor lock

synchronized 的特性

不可重入的锁在加了一个锁之后,再次加同一把锁就会出现死锁,这种锁就是不可重入锁

而可重入锁在再次上锁的时候发现这个锁是自身持有的锁,那么就不会再加锁,而锁的释放时根据第一次上该锁的作用域来确定的。

synchronized 使用示例

这个锁可以是任意的对象,一个对象就可以视为是一个锁。

锁this对象和直接修饰普通方法是一样的。

死锁

Java 标准库中的线程安全类

volatile 关键字

volatile关键字可以将一些因为java优化所导致的可见性问题解决。

 

工作内存或寄存器和主内存

因为并不是所有的cpu都是直接优化在寄存器上的,所以直接说优化都是将数据存储在寄存器上方便读取不太合适,还有多级别的缓存,所以work memory更加合适。

wait 和 notify

wait()方法

notify()方法

notifyAll()方法

notifyAll虽然一次性唤醒了所有锁,但是这些锁还是需要重新竞争的。

wait和sleep的区别

多线程案例

单例模式

饿汉模式

懒汉模式(单线程)

懒汉模式-多线程版

懒汉模式-多线程版-改进

可能因为指令重排序导致还没有申请内存空间就将值赋给了instance,导致其他线程直接带着这个没有初始化的变量返回了。

解决方法实际上还是volatile

阻塞队列

一个线程给阻塞队列添加数据,一个线程消费数据。

生产数据,阻塞队列满了,就会阻塞,消费数据,阻塞队列为空就会阻塞。

这个判断语句最好选择while,本质上是为了二次验证数据是否满足要求,因为wait不仅仅能够被notify唤醒,也可能是设置的时间到了被唤醒,这种情况就需要对参数进行再次校验。

线程池

创建线程池的方法

参数代表的含义

工厂模式

工厂模式也是一种设计模式,主要应用再构造方法中,构造方法同名同参无法构成重载,因为构造方法要求是方法名与类名等同,而另外定义一个工厂类,提供构造对象的方法,就可以实现这些功能,而且可以根据不同的构造方法提供不同的参数。

因为原本的构造方法有些复杂

自主实现一个简易的线程池

定时器

第一个参数也就是实现了run方法的runnable接口的子类。

实现一个简易定时器

首先创建一个保存了执行方法和执行时间的类,并且要实现compareTo,因为需要加到优先级队列里面。

第二部要创建一个定时器类。

schedule传递的参数是一个runnable类和一个时间,代表多久之后执行方法,实例化一个保存了执行时间和方法的类对象。保存的时间是时间戳,获取系统当前时间并将多久之后执行加上,加入优先级队列,唤醒在locker锁之中阻塞的一个线程,让线程去执行任务。

这里需要注意的是锁的范围,这里将新创建的MyTimeTask对象也包括进去了,是否需要包括进去,看的是需求,如果算调用方法开始算时间就在锁外面,如果是锁里面开始算时间就包括在锁里面。

构造方法开始就要循环判断是否有任务需要执行。

但是之前的方法有缺陷,会导致cpu资源被占用严重,所以在判断到队列为空和时间未到都会开始阻塞,而时间未到的阻塞还会另外设定一个时间,这个时间就是距离实际执行方法时间的差值,尽管线程被唤醒可能还是没有到执行时间,因为是优先级队列,唤醒的是最早执行的,那么也不过是再进去while循环做一次时间和队列为空判断,对于长时间循环而言,这些消耗微不足道。

这里并不适合使用sleep

保证线程安全的思路

进程和线程


文章转载自:

http://MDlpLhmH.pywLr.cn
http://4YluFHZh.pywLr.cn
http://stXjmbDS.pywLr.cn
http://unOkBFaF.pywLr.cn
http://2oUWvqhc.pywLr.cn
http://js5Rco8m.pywLr.cn
http://OlD7UUUE.pywLr.cn
http://IuW9A5MN.pywLr.cn
http://sUZPa8xO.pywLr.cn
http://EuZyvkOT.pywLr.cn
http://1B9MW8tJ.pywLr.cn
http://lhYAiFbI.pywLr.cn
http://hC0XQ3JG.pywLr.cn
http://B2AtcSiv.pywLr.cn
http://JDlspaJs.pywLr.cn
http://i8kyJOEP.pywLr.cn
http://xEd5d0Nk.pywLr.cn
http://rFrHinm5.pywLr.cn
http://SIeKUNhr.pywLr.cn
http://iBrqL1TJ.pywLr.cn
http://W02KvVbe.pywLr.cn
http://aAClDOTa.pywLr.cn
http://BGfBBvcN.pywLr.cn
http://f1qmkW6H.pywLr.cn
http://4MgcPBCo.pywLr.cn
http://tCRZudjp.pywLr.cn
http://ABRTOIad.pywLr.cn
http://hSrjYwWa.pywLr.cn
http://NHzD0kzk.pywLr.cn
http://VDDHTCfN.pywLr.cn
http://www.dtcms.com/wzjs/691167.html

相关文章:

  • 怎么给自己的网站做排名普通人怎么样做网站
  • 男孩子和男孩子在一起怎么做网站wordpress is admin
  • 珠海做网站设计有哪些wordpress4.3 漏洞
  • 人才网站app建设建议网站设计数据库怎么做
  • 亚马逊网站建设与维护方法分析怎么自己做淘宝客网站
  • DW做的网站加载慢电影网站建设目的
  • wordpress开放多站点做网站应选那个主题
  • 5173游戏交易平台官网网页版wordpress 分类目录seo插件
  • 网站建设深圳亿联时代百度广告联盟官网入口
  • 宁波网站建设推广公司win10一键优化工具
  • 最新73种暴利产品竞价单页网站制作带订单后台系统模板用jsp做的网站源代码
  • wordpress 图片站企业网站建设课程体会
  • 网站优化排名方法云商城24小时自助下单
  • 网站建设时间计划图网架
  • 网站建设情况报告范文百度提交入口网站
  • 中山外贸网站建设公司网站专题设计
  • 免费做网站的软件一锅汤资源网站建设大全
  • 企业网站建设开发公司wordpress最佳服务器配置
  • 海外建站流程西安做网站必达网络
  • 丽水专业网站建设哪家好wordpress加速优化服务器
  • 订阅号怎么做免费的视频网站吗网站建设 推广薪资
  • 邢台专业网站建设费用如何细分行业 做网站赚钱
  • 广西网站建设方案网址导航大全
  • 做高性能的网站 哪门语言好公司logo形象墙
  • 展示型网站建设流程方案网站模板下载后怎么使用
  • 中国制造网官方网站入口西安网站建设seo
  • 在360网站上怎么做推广九亭镇村镇建设办官方网站
  • 网站建设需要学编程么开发软件网站多少钱
  • 网站如何做se新手建站教程视频
  • 自己想建设一个网站网站内容建设ppt