线程
Mars-xq
好记性不如烂笔头。
展开
-
java并发: 多线程与volatile、AtomicInteger、ReentrantLock、Condition、Semaphore
参考:Java 每日算法,三个线程按顺序打印题目一启动3个线程A、B、C,使A打印0,然后B打印1,然后C打印2,A打印3,B打印4,C打印5,依次类推。/** * 启动3个线程A、B、C,使A打印0,然后B打印1,然后C打印2,A打印3,B打印4,C打印5,依次类推。 */public class PrintSequenceThread implements Runnable { ...原创 2019-10-30 19:15:02 · 598 阅读 · 0 评论 -
java : 多线程保证操作同步ReentrantLock、synchronized
参考:Android 多线程保证操作同步(同步锁的俩种)同步的方式1.使用synchronized关键字。使用synchronized关键字修饰的方法会同步执行,必须要等上一个synchronized执行完才会继续执行,如果在执行过程中线程阻塞,他就会一直保持等待的状态,在这里不特别推荐使用这种方式,如果你的需求是必须保证数据同步的情况下且保证不会出现其他情况使用户无法完成操作的情况...原创 2019-10-24 18:54:25 · 206 阅读 · 0 评论 -
java : 并发线程: AtomicBoolean 与 线程原子性 :多线程只执行一次
AtomicBoolean 与 线程原子性参考:AtomicBoolean使用AtomicBoolean 的api简单使用:public class Test2 { @Test public void test1() { AtomicBoolean exists = new AtomicBoolean(false); System.out....原创 2019-10-24 18:53:23 · 1139 阅读 · 0 评论 -
Handler、Thread、HandlerThread三者的区别
参考:Handler、Thread、HandlerThread三者的区别Handler、Thread、HandlerThread概念:①Handler:在android中负责发送和处理消息,通过它可以实现其他支线线程与主线程之间的消息通讯。②Thread:Java进程中执行运算的最小单位,亦即执行处理机调度的基本单位。某一进程中一路单独运行的程序。③HandlerThread:一个继承自...原创 2019-03-07 17:43:49 · 2503 阅读 · 0 评论 -
Java-线程的运行状态
参考: 学习java线程状态和看懂thread dump文件中的线程信息 Java线程中wait状态和block状态的区别?1,线程状态为“waiting for monitor entry”: 意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。 此时线程状态一般都是 Blocked: java.lang.Thread.State: BLOCKED (o原创 2017-06-17 08:45:44 · 2305 阅读 · 0 评论 -
主线程更新UI与Only the original thread that created a view hierarchy can touch its views.
更新UI方式:更新UI方法一:handler.post 更新UI方法二:view.post 更新UI方法三:runOnUiThread 更新UI方法四:handler.handleMessage示例:public class ThreadActivity extends FragmentActivity { /*更新UI方法四:handler.handleMessage*/ pr原创 2017-11-16 18:25:50 · 366 阅读 · 0 评论 -
Java - 线程池
Java通过Executors提供四种线程池,分别为: newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务原创 2017-05-06 01:44:22 · 966 阅读 · 0 评论 -
Android-进程与线程
一、进程进程是一个动态的过程,每一个App的运行都是在一个独立的进程中,进程有自己独立的内存和数据空间,进程的名字就是App的packageName,这些进程都是从Zygote进程Fork出来的,并受AMS(ActivityManagerService)管理。默认情况下,同一App的所有组件均在相同的进程中运行,但也可以允许App有多个进程。在AndroidManifest.xml里边给四大组件配置原创 2017-05-14 01:49:10 · 443 阅读 · 0 评论 -
Android---多线程:继承Thread 类和实现Runnable 接口的区别
参考: Java线程中继承thread类与实现Runnable接口的区别 Java中线程的创建有两种方式: 1、通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中。多个线程分别完成自己的任务。 2、通过实现Runnable接口,实例化Thread类。多个线程共同完成一个任务。有经验的程序员都会选择实现Runnable接口 ,其主要原因有以下两点: 1、j原创 2017-06-16 22:06:11 · 2204 阅读 · 0 评论 -
Android -理解ThreadLocal、Looper、并发
一、理解Looper:消息循环参考:android的消息处理机制(图+源码分析)——Looper,Handler,MessageAndroid消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环)。Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Lo原创 2017-08-10 15:07:03 · 797 阅读 · 0 评论 -
Java-FutureTask
//Runnable封装一个异步运行的任务,可以把它想象成为一个没有参数和返回值的异步方法。public interface Runnable { public abstract void run();}//Callable与Runnable类似,但是有返回值。Callable接口是一个参数化的类型,只有一个方法call。public interface Callable<V> {原创 2017-06-30 19:27:50 · 384 阅读 · 0 评论 -
Android-AsyncTask
AsyncTask,是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.优点:简单,快捷 AsyncTask是封装好的线程池,比起Thread+Handler的方式,AsyncTask在操作UI线程上更方便,因为onPreExecute()、onPostExecu原创 2017-06-17 11:01:42 · 396 阅读 · 0 评论 -
java-线程的终止和调度
终止线程的三种方法 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。1、使用退出标志终止线程:在Activity开启的子线程并不会自动随Activity的destroy而关闭,所以必须手动去关闭子原创 2017-06-17 09:13:11 · 502 阅读 · 0 评论