安卓笔记侠

专注安卓开发

导航

上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 50 下一页

2016年12月10日 #

Java并发编程(十)阻塞队列

摘要: 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了元 阅读全文

posted @ 2016-12-10 21:54 安卓笔记侠 阅读(314) 评论(0) 推荐(0)

2016年12月9日 #

不要在Android的Application对象中缓存数据!

摘要: 前言 在你的App中的很多地方都需要使用到数据信息,它可能是一个session token,一次费时计算的结果等等,通常为了避免Activity之间传递数据的开销,会将这些数据通过持久化来存储。 有人建议将这些数据放在Application对象中方便所有的Activity访问,这个解决方案简单、优雅 阅读全文

posted @ 2016-12-09 00:34 安卓笔记侠 阅读(2576) 评论(0) 推荐(1)

2016年12月5日 #

Java并发编程(九)并发容器

摘要: 并发容器的简单介绍: ConcurrentHashMap代替同步的Map(Collections.synchronized(new HashMap())),众所周知,HashMap是根据散列值分段存储的,同步Map在同步的时候锁住了所有的段,而ConcurrentHashMap加锁的时候根据散列值锁 阅读全文

posted @ 2016-12-05 18:48 安卓笔记侠 阅读(309) 评论(0) 推荐(0)

Java并发编程(八)同步容器

摘要: 为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch) 一.为什么会出现同步容器? 在Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map。 List、Set 阅读全文

posted @ 2016-12-05 00:42 安卓笔记侠 阅读(688) 评论(0) 推荐(0)

Java并发编程(七)深入剖析ThreadLocal

摘要: 一.对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ThreadLocal类用来提供线程内部的局部变量。 阅读全文

posted @ 2016-12-05 00:32 安卓笔记侠 阅读(477) 评论(0) 推荐(0)

Java并发编程(六)volatile关键字解析

摘要: 由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识。 一.内存模型的相关概念 Java内存模型规定所有的变量都是存在主存当中,每个线程都有自己的工作内存。线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进 阅读全文

posted @ 2016-12-05 00:15 安卓笔记侠 阅读(534) 评论(2) 推荐(1)

2016年12月4日 #

Java并发编程(五)Lock

摘要: 一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获 阅读全文

posted @ 2016-12-04 22:24 安卓笔记侠 阅读(545) 评论(0) 推荐(0)

Java并发编程(四)synchronized

摘要: 一.synchronized同步方法或者同步块 在了解synchronized关键字的使用方法之前,我们先来看一个概念:互斥锁,顾名思义:能到达到互斥访问目的的锁。 举个简单的例子:如果对临界资源加上互斥锁,当一个线程在访问该临界资源时,其他线程便只能等待。 在Java中,每一个对象都拥有一个锁标记 阅读全文

posted @ 2016-12-04 22:03 安卓笔记侠 阅读(366) 评论(0) 推荐(0)

Java并发编程(三)Thread类的使用

摘要: 一.线程的状态 线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting、waiting、消亡(dead)。 当需要新起一个线程来执行某个子任务时,就创建了一个线程。 阅读全文

posted @ 2016-12-04 17:44 安卓笔记侠 阅读(596) 评论(0) 推荐(0)

Java并发编程(二)同步

摘要: 在多线程的应用中,两个或者两个以上的线程需要共享对同一个数据的存取。如果两个线程存取相同的对象,并且每一个线程都调用了修改该对象的方法,这种情况通常成为竞争条件。 竞争条件最容易理解的例子就是:比如火车卖票,火车票是一定的,但卖火车票的窗口到处都有,每个窗口就相当于一个线程,这么多的线程共用所有的火 阅读全文

posted @ 2016-12-04 16:39 安卓笔记侠 阅读(490) 评论(0) 推荐(0)

上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 50 下一页