多线程-并发
pangjl1982
这个作者很懒,什么都没留下…
展开
-
Android多线程-----并发和同步(ThreadLocal)
一.对ThreadLocal的理解 很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量,也就是进行数据隔离。 在看很多博客的时候,总是有很多作者在描述ThreadLocal的作用是数据隔离,并且是每一个线程复制了一份,每个线程的访问的...原创 2018-12-15 16:47:45 · 396 阅读 · 0 评论 -
Android多线程-----异步(HandlerThread)
它就是一个帮我们创建 Looper 的线程,让我们可以直接在线程中使用 Handler 来处理异步任务一、他们的区别 ①Handler:在android中负责发送和处理消息,通过它可以实现其他支线线程与主线程之间的消息通讯。 ②Thread:Java进程中执行运算的最小单位,亦即执行处理机调度的基本单位。某一进程中一路单独运行的程序。 ③Handle...原创 2018-10-24 13:42:36 · 826 阅读 · 0 评论 -
Android多线程-----异步(Handlers)
一、为什么要使用Handlers?因为,我们当我们的主线程队列,如果处理一个消息超过5秒,android 就会抛出一个 ANP(无响应)的消息;所以,我们需要把一些要处理比较长的消息,放在一个单独线程里面处理,把处理以后的结果,返回给主线程运行,就需要用的Handler来进行线程建的通信。Message对象封装了所有的消息,而这些消息的操作需要Handler(消息处理类)类完成。什么是ha...原创 2018-12-16 21:42:51 · 233 阅读 · 0 评论 -
Android多线程-----异步(AsyncTask)
一、总述在Android当中,提供了异步消息处理机制的两种方式来解决线程之间的通信问题,一种是通过Handler的机制(这种方式在后面的博客中将详细介绍),还有一种就是今天要详细讲解的 AsyncTask 机制。Android中的工作者线程主要有AsyncTask、IntentService、HandlerThread,它们本质上都是Handler与线程池的封装。关于线程和线程池相关知识的...原创 2018-12-16 15:36:37 · 290 阅读 · 0 评论 -
Android多线程-----UI线程
Android中的工作者线程主要有AsyncTask、IntentService、HandlerThread,它们本质上都是对线程或线程池的封装。关于线程和线程池相关知识的介绍,请参考这两篇博文:Java核心技术点之多线程 深入理解Java之线程池...原创 2018-12-16 15:15:48 · 130 阅读 · 0 评论 -
Android多线程-----异步的几种方法
在Android项目中,有经验的开发人员都知道,一些耗时的IO操作等都必须在子线程中去操作,那么可以有哪些方法来开启子线程呢,一般可以使用Java中自带的几种方法,也可以使用Andorid特有的一些类。用Java来实现异步主要有两种方法来实现异步,继承Thread类和实现Runnable接口1.继承Thread类public class MyThread extends Threa...转载 2018-12-16 15:07:19 · 427 阅读 · 0 评论 -
Android多线程-----并发和同步(原子变量)
在java中的变量在++等操作是不是原子操作,分为先加一,然后赋值,从而在多线程编码时需要加上synchronizeed,为了增加易用性,java当前提供了原子变量,当前的原子变量有AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference等,其特点就是操作的原子性,以下代码演示了他们的用法。package AtomicTest; impo...转载 2018-12-16 11:52:46 · 1972 阅读 · 0 评论 -
Android多线程-----并发和同步(wait与notify)
wait与notify原创 2018-12-16 11:47:01 · 668 阅读 · 0 评论 -
Android多线程-----并发和同步(volatile)
volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是好事。与锁相比,Volatile 变量是一种非常简单但同时又非常脆弱的同步机制,它在某些情况下将提供优于...转载 2018-12-16 11:38:57 · 584 阅读 · 0 评论 -
Android多线程-----并发和同步(Lock)
一、为什么需要Lock如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:1)获取锁的线程执行完了该代码块,然后线程释放对锁的占有;2)线程执行发生异常,此时JVM会让线程自动释放锁。那么如果这个获取锁的线程由于要等待IO或者其他原因(比如调用sleep方法)...原创 2018-12-16 11:14:15 · 1520 阅读 · 0 评论 -
Android多线程-----并发和同步(synchronized)
一、锁对象的内置锁和对象的状态之间是没有内在的关联的,虽然大多数类都将内置锁用做一种有效的加锁机制,但对象的域并不一定通过内置锁来保护。当获取到与对象关联的内置锁时,并不能阻止其他线程访问该对象,当某个线程获得对象的锁之后,只能阻止其他线程获得同一个锁。之所以每个对象都有一个内置锁,是为了免去显式地创建锁对象。所以synchronized只是一个内置锁的加锁机制,当某个方法加上synchr...原创 2018-12-15 22:32:01 · 1373 阅读 · 0 评论 -
Android多线程-----异步(IntentService)
一、Service 是什么1、大家随口就能答得上来,Service是一个在后台执行长时间运行操作而不用提供用户界面的应用组件,可由其他组件启动,即使用户切换到其他应用程序,Service 仍然在后台继续运行。2、service的弊端:service既不是独立的进程也不是独立的线程,是依赖于主线程的,所以是不建议在service里面做过多的耗时操作的,避免ANR。3、Service 有...原创 2018-12-23 10:27:26 · 330 阅读 · 0 评论