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

宁波网站建设培训哪家好怎么做网站移动端

宁波网站建设培训哪家好,怎么做网站移动端,石家庄网站建设加王道下拉,广州seo搜索声明#xff1a;本文是《 Java 7 Concurrency Cookbook 》的第一章#xff0c; 作者#xff1a; Javier Fernndez Gonzlez 译者#xff1a;郑玉婷 校对#xff1a;方腾飞 使用本地线程变量 并发应用的一个关键地方就是共享数据。这个对那些扩展Thread类或者实现Runnable接… 声明本文是《 Java 7 Concurrency Cookbook 》的第一章 作者 Javier Fernández González 译者郑玉婷 校对方腾飞 使用本地线程变量 并发应用的一个关键地方就是共享数据。这个对那些扩展Thread类或者实现Runnable接口的对象特别重要。 如果你创建一个类对象实现Runnable接口然后多个Thread对象使用同样的Runnable对象全部的线程都共享同样的属性。这意味着如果你在一个线程里改变一个属性全部的线程都会受到这个改变的影响。 有时你希望程序里的各个线程的属性不会被共享。 Java 并发 API提供了一个很清楚的机制叫本地线程变量。 在这个指南中, 我们将开发一个程序这个程序用来描述在第一段话里的问题和另一个程序使用本地线程变量机制解决这个问题。 准备 指南中的例子是使用Eclipse IDE 来实现的。如果你使用Eclipse 或者其他的IDE例如NetBeans, 打开并创建一个新的java项目。 怎么做呢… 按照这些步骤来实现下面的例子 1.   首先我们来实现一个程序含有上述的问题。 创建一个类名为 UnsafeTask 并实现 Runnable 接口。 声明一个 private java.util.Date 属性. 1 public class UnsafeTask implements Runnable{ 2 private Date startDate; 2. 实现UnsafeTask 对象的run() 方法此方法会初始 startDate 属性, 把值写入控制台随机休眠一段时间最后在写入startDate 属性。 01Override 02 public void run() { 03 startDatenew Date(); 04 System.out.printf(Starting Thread: %s : %s\n,Thread. currentThread().getId(),startDate); 05 try { 06 TimeUnit.SECONDS.sleep( (int)Math.rint(Math.random()*10)); 07 } catch (InterruptedException e) { 08e.printStackTrace(); 09} 10 System.out.printf(Thread Finished: %s : %s\n,Thread. currentThread().getId(),startDate); 11} 3.   现在来实现这个有问题例子的主类。创建一个 Main  类和 main() 方法. 此方法会创建一个 UnsafeTask 类的对象并开始3个线程使用这个对象每个线程间休眠2秒。 01 public class Core { 02 public static void main(String[] args) { 03 UnsafeTask tasknew UnsafeTask(); 04  for (int i0; i10; i){ 05 Thread threadnew Thread(task); 06thread.start(); 07 try { TimeUnit.SECONDS.sleep(2); 08 } catch (InterruptedException e) { 09e.printStackTrace(); 10} 11} 12} 13} 4.   在以下的裁图你可以发现这个程序的执行结果。每个线程有着不同的开始时间但是全部都有相同的结束时间。 5.   如在之前提到的, 我们会使用本地线程变量机制来解决这个问题。 6.   创建一个类名为 SafeTask a一定实现 Runnable 接口。 1 public class SafeTask implements Runnable { 7.   声明 ThreadLocalDate 类对象。此对象有隐含实现了 initialValue()方法. 此方法会返回真实日期。 1 private static ThreadLocalDate startDate new ThreadLocalDate() { 2 protected Date initialValue(){ 3 return new Date(); 4} 5}; 8.   实现run()方法。它和 UnsafeClass的run() 方法功能一样只是改变了属性的访问方式。 01Override 02 public void run() { 03   System.out.printf(Starting Thread: %s : %s\n,Thread.currentThread().getId(),startDate.get()); 04 try { 05   TimeUnit.SECONDS.sleep((int)Math.rint(Math.random()*10)); 06 } catch (InterruptedException e) { 07e.printStackTrace(); 08} 09 System.out.printf(Thread Finished: %s : %s\n,Thread.currentThread().getId(),startDate.get()); 10} 9.    这个例子的主类跟不安全例子一样把名字改成 Runnable 类。 10. 运行例子并分析不同处。 它是怎么工作的… 在下面的截图里你可以看到线程安全模式下程序运行的结果。现在3个 Thread 对象都有他们自己的startDate 属性值。看下图 本地线程变量为每个使用这些变量的线程储存属性值。可以用 get() 方法读取值和使用 set() 方法改变值。 如果第一次你访问本地线程变量的值如果没有值给当前的线程对象那么本地线程变量会调用 initialValue() 方法来设置值给线程并返回初始值。 更多… 本地线程类还提供 remove() 方法删除存储在线程本地变量里的值。 Java 并发 API 包括 InheritableThreadLocal 类提供线程创建线程的值的遗传性 。如果线程A有一个本地线程变量然后它创建了另一个线程B那么线程B将有与A相同的本地线程变量值。 你可以覆盖 childValue() 方法来初始子线程的本地线程变量的值。 它接收父线程的本地线程变量作为参数。 原创文章转载请注明 转载自并发编程网 – ifeve.com本文链接地址: 线程管理九使用本地线程变量 文章转自 并发编程网-ifeve.com
http://www.zqtcl.cn/news/556949/

相关文章:

  • 暖通设计网站推荐百度在西安的公司叫什么
  • 天津响应式网站设计网站建设的任务
  • 多语言网站 自助江门建设局网站
  • 宜兴做阿里巴巴网站常州外贸网站设计
  • 长沙米拓建站wordpress最底部版权
  • 小企业网站建设费用一年wordpress 怎么登陆
  • 阿里云建站可不可以备案wordpress评论滑动插件
  • 网站建设教程出售用苏州久远网络现在的网络营销方式
  • 浮动播放器wordpress刷神马seo排名首页排名
  • 建设网站呼叫中心有什么好处站长统计免费下载
  • 做网站电脑配置要求个高吗电子商务网站的建设包含哪些流程图
  • 青岛做网站大公司wordpress文章页加一言
  • 用哪个网站做相册视频文件夹谷歌ads
  • 注册top域名做公司网站男女做暖网站是什么
  • 郴州本地网站建设高端网站设计多少钱
  • 此网站域名即将过期广告制作属于什么行业
  • 牛牛襄阳网站建设wap网站asp源码
  • 信用网站建设招标书建网站需要什么手续
  • 重庆建网站方法网站开发和维护
  • 做网站需要什么人活动策划流程及细节
  • wordpress企业网站seo上海市
  • 北京建外贸网站公司网络域名是什么
  • 聚美优品网站建设方案上市公司的信息网站
  • 济南做网站比较好的公司知道吗为什么做美食视频网站
  • 药店网站源码宣传方式
  • word如何做网站链接淘宝客建站需要多少钱
  • 凡科网免费建站步骤及视频logo设计网页
  • 天梯网站建设软件开发公司职位
  • 建站公司外贸东方购物网上商城
  • 白银做网站企业免费网站模板