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

做全屏式网站尺寸是多大国外虚拟主机 两个网站

做全屏式网站尺寸是多大,国外虚拟主机 两个网站,郑州网站制作建设,网上开店怎么开1.为什么会出现线程安全问题 计算机系统资源分配的单位为进程#xff0c;同一个进程中允许多个线程并发执行#xff0c;并且多个线程会共享进程范围内的资源#xff1a;例如内存地址。当多个线程并发访问同一个内存地址并且内存地址保存的值是可变的时候可能会发生线程安全问…1.为什么会出现线程安全问题 计算机系统资源分配的单位为进程同一个进程中允许多个线程并发执行并且多个线程会共享进程范围内的资源例如内存地址。当多个线程并发访问同一个内存地址并且内存地址保存的值是可变的时候可能会发生线程安全问题因此需要内存数据共享机制来保证线程安全问题。 对应到java服务来说在虚拟中的共享内存地址是java的堆内存,比如以下程序中线程安全问题 public class ThreadUnsafeDemo {private static final ExecutorService EXECUTOR_SERVICE;static {EXECUTOR_SERVICE new ThreadPoolExecutor(100, 100, 1000 * 10,TimeUnit.SECONDS, new LinkedBlockingQueueRunnable(100), new ThreadFactory() {private AtomicLong atomicLong new AtomicLong(1);Overridepublic Thread newThread(Runnable r) {return new Thread(r, Thread-Safe-Thread- atomicLong.getAndIncrement());}});}public static void main(String[] args) throws Exception {MapString, Integer params new HashMap();ListFuture futureList new ArrayList(100);for (int i 0; i 100; i) {futureList.add(EXECUTOR_SERVICE.submit(new CacheOpTask(params)));}for (Future future : futureList) {System.out.println(Future result: future.get());}System.out.println(params);}private static class CacheOpTask implements CallableInteger {private MapString, Integer params;CacheOpTask(MapString, Integer params) {this.params params;}Overridepublic Integer call() {for (int i 0; i 100; i) {int count params.getOrDefault(count, 0);params.put(count, count);}return params.get(count);}} } 创建100个task每个task对map中的元素累加100此程序执行结果为 {count9846} 而预期的正确结果为 {count10000} 至于出现这种问题的原因下面会具体分析。 判断是否有线程安全性的一个原则是 是否有多线程访问可变的共享变量 2.多线程的优势 发挥多处理器的强大能力提高效率和程序吞吐量 3.并发带来的风险 使用并发程序带来的主要风险有以下三种 3.1.安全性问题 竞态条件由于不恰当的执行时序而出现不正确的结果 对于1中的线程安全的例子就是由于竞态条件导致的最终结果与预期结果不一致。关键代码块如下 int count params.getOrDefault(count, 0); params.put(count, count); 当多个线程同时取的count的值的时候每个线程计算之后在写入到count这时候会出现多个线程值被覆盖的情况最终导致结果不正确。 如下图所示 3.2解决此类问题的几种方法 1.使用同步机制限制变量的访问锁 比如 synchronized (LOCK) {int count params.getOrDefault(count, 0);params.put(count, count); } 2.将变量设置为不可变 即将共享变量设置为final 3.不在线程之间共享此变量ThreadLocal 编程的原则首先编写正确的代码然后在实现性能的提升 无状态的类一定是线程安全的 3.3 内置锁 内置锁同步代码块 synchronized (this) {} 进入代码块前需要获取锁会有性能问题。内置锁是可重入锁之所以每个对象都有一个内置锁是为了避免显示的创建锁对象 常见的加锁约定将所有的可变状态都封装在对象内部并使用内置锁对所有访问可变状态的代码进行同步。例如Vector等 同步的另一个功能内存可见性类似于volatile 非volatile的64位变量double、long JVM允许对64位的操作分解为两次32位的两次操作可变64位变量必须用volatile或者锁来保护 加锁的含义不仅在于互斥行为还包括内存可见性为了所有线程都可以看到共享变量的最新值所有线程应该使用同一个锁 原则 除非需要跟高的可见性否则应该将所有的域都声明为私有的除非需要某个域是可变的否则应该讲所有的域生命为final的 2.活跃性问题 线程活跃性问题主要是由于加锁不正确导致的线程一直处于等待获取锁的状态比如以下程序 public class DeadLock {private static final Object[] LOCK_ARRAY;static {LOCK_ARRAY new Object[2];LOCK_ARRAY[0] new Object();LOCK_ARRAY[1] new Object();}public static void main(String[] args) throws Exception {TaskOne taskOne new TaskOne();taskOne.start();TaskTwo taskTwo new TaskTwo();taskTwo.start();System.out.println(finished);}private static class TaskOne extends Thread {Overridepublic void run(){synchronized (LOCK_ARRAY[0]) {try {Thread.sleep(3000);} catch (Exception e) {}System.out.println(Get LOCK-0);synchronized (LOCK_ARRAY[1]) {System.out.println(Get LOCK-1);}}}}private static class TaskTwo extends Thread {Overridepublic void run() {synchronized (LOCK_ARRAY[1]) {try {Thread.sleep(1000 * 3);} catch (Exception e) {}System.out.println(Get LOCK-1);synchronized (LOCK_ARRAY[0]) {System.out.println(Get LOCK-0);}}}} } 在两个线程持有一个锁并在在锁没有释放之前互相等待对方持有的锁这时候会造成两个线程会一直等待从而产生死锁。在我们使用锁的时候应该考虑持有锁的时长特别是在网络I/O的时候。 在使用锁的时候要尽量避免以上情况从而避免产生死锁 3.性能问题 在使用多线程执行程序的时候在线程间的切换以及线程的调度也会消耗CPU的性能。 转载于:https://www.cnblogs.com/vitasyuan/p/9313625.html
http://www.zqtcl.cn/news/575682/

相关文章:

  • 竣工验收备案表查询网站优化大师win10能用吗
  • php 网站管理系统做生鲜管理系统的网站
  • 昆山建设工程招聘信息网站业绩显示屏 东莞网站建设技术支持
  • 百度我的网站广东广州网站建设
  • 怎么提高网站流量沈阳有资质做网站的公司有哪些
  • 内蒙古住房与城乡建设厅网站网址微信可以上网
  • 如何网站seo中国化工第九建设公司网站
  • 无锡网站推广优化公司单位网站建设必要性
  • 网站建设丶金手指花总12网站建设是怎么挣钱
  • 网站开发都是用什么框架广西建设网人员查询网
  • 做购物网站怎么写开题报告中山如何建网站
  • 专门做游戏交易的网站新网站如何才做被百度收录
  • 网站模板打包自己做电视视频网站吗
  • seo网站关键词排名提升公司建设网站需要多少钱
  • 湖北网站设计流程旺旺食品有限公司网页设计
  • 无锡专业网站建设华企网站建设推广优化
  • 做网站公司流程cms203片
  • wordpress网站主机名如何优化培训体系
  • 安平网站建设团购网站建设目的
  • 长春网页网站制作做网站时搜索的代码是什么
  • 排名好的移动网站建设陕西恒业建设集团网站
  • 怎么用ps做简单网站个人商城网站建设
  • mvc做门户网站自适应网站制作费用
  • 建设工程协会网站查询系统成品网站源码在线观看
  • 宝塔做两个网站安卓版wordpress
  • 即墨网站建设招聘企业类网站有哪些
  • 汕头网站建设开发软件开发属于哪个专业
  • 企业网站建设规划书阿里云虚拟机怎么做多个网站
  • 营销平台网站建设做视频怎么做
  • 吉林房地产网站开发icp网站授权函