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

外国炫酷网站设计网络营销与直播电商专业专升本

外国炫酷网站设计,网络营销与直播电商专业专升本,网站建设需要达到什么样的效果,松原做网站的公司声明#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.yutouwan.com/news/143619/

相关文章:

  • 网站投诉平台禅城区电话黄页
  • 课程的网站建设网站后缀是nl是哪个国家
  • 大气企业网站discuz是什么网站程序
  • 建设银行陕西分行网站注册网站账号审核不通过无法登陆怎么办
  • 建设一个购物网站需要什么意思网站管理建设
  • 支付宝可以给第三方网站做担保么美工网站设计
  • 黄骅市住房和城乡建设局网站怎么创建自己的小程序商城
  • 怎样建设一个好的网站购买网站域名
  • 网站建设与管理实践wordpress添加支付宝支付
  • 网站设计的字体网页设计作业成品代码和文字
  • 网站建设协议原画外包网
  • 网站色调代号不用代码做网站
  • 视频网站策划许昌建网站
  • 建设部网站信息系统上海模板网建站
  • 淘宝手机网站模板下载安装做照片的网站有哪些
  • 东莞响应式网站做微商去哪些社交网站
  • 连云港规划建设网站一个空间两个wordpress
  • 凡科建站源码做网站上海的备案地址
  • 设计某网站的登录和注册程序山西建设厅网站
  • 网站制作的流程有哪些响应式网站建设平台
  • 泉州做网站开发公司图书网站建设费用明细
  • 网站做多语言手机网站搭建公司
  • t想学网站建设学校网站建设开题报告书
  • 专门做网站的软件asp网站建设与设计
  • 黄山集团网站建设家具设计图制作软件
  • 网站开发报价表模板wordpress新增目录
  • 企业网站关键词排名 s高埗镇网站仿做
  • 公众号微网站制作怎样做微信小程序
  • 大学生心里健康网站设计与建设建筑工程网页模板
  • 电子商务网站制作公司大型网站建设方案常见问题