自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 如何判断当前线程为主线程的方法

1、Looper.myLooper() == Looper.getMainLooper()2、Thread.currentThread() == Looper.getMainLooper().getThread()

2019-06-21 08:27:56 1657

原创 关于Executor框架

写多线程的程序离不开Thread和Runnable两个类,这两者初看起来是一回事,其实不同。Runnable代表了一个要执行的任务,而Thread代表了一个执行任务的工人。工人和任务之间可以有各种组合方式,比如可能所有任务都由一个工人完成,也可能固定数量的工人完成所有任务,也可能根据任务的多少动态增加工人数来完成任务等等。因此Runnable和Thread之间有一个执行策略需要配置,java提供了...

2019-06-20 06:37:07 111

原创 ProgressDialog和AsyncTask的使用

一般在安卓中为了方便子线程与主线程之间的交互,是通过主线程的Handler来实现的,即子线程用主线程的Handler来发送消息或post Callback,在主线程中就可以HandlerMessage或执行Callback。这种方式已经算很方便了,但是如果想加入一些附加的功能,比如子线程工作时显示一个进度条,子线程退出时,关闭进度条,就不太方便了。AsyncTask是安卓中为了方便子线程与U...

2019-06-14 12:47:48 181

原创 多线程编程的关键是要保护数据

多线程的程序与单线程相比,主要的特点是“同一份数据可能会被多个线程访问,而每个线程执行的程序代码是有可能被从中间中断的,因此如果处理不好,数据的改变可能不是我们期望的那样。”为了让数据是按期望的那样被修改,必须保证在多个线程访问这些数据时,一定是某个线程执行的某段代码按预期全部执行完,才让另一个线程执行,这称为线程同步concurrency,也就是对数据的保护机制。同步的方式有很多种,比如对某...

2019-06-14 08:19:59 540

原创 关于ble bluetooth notify/incate返回数据失序的讨论帖子

Notifications can be received out of order on Android:https://github.com/don/cordova-plugin-ble-central/issues/625How could i achieve maximum thread safety with a read/write BLE Gatt Characterist...

2019-06-13 15:57:31 362

原创 AtomicXXX原子类

Java中有二十多个Atomic类,用来表示线程安全的数据类型或对象引用,是线程安全的机制之一。它与volatile修饰的数据不同之处在于:由它封装的数据操作都是线程安全的,比如对于AtomicInteger有incrementAndGet()操作,相当于线程安全的++i,这一点volatile就做不到。...

2019-06-05 06:44:34 91

原创 关于Java中的volatile变量

在Java中进行线程同步,一般使用的是synchronized加锁机制,但是有时候对某些变量可以采用volatile标示达到线程同步的效果。当把一个变量指明为volatile时,实际上告诉编译器,这个变量是会被多线程访问的。因此编译器将不会做下面两种操作:1、不会将该变量上的操作与其他内存操作重排序;2、不会将该变量缓存到寄存器。这样做的结果导致对该变量的读取和写入这两种操作一定是...

2019-05-29 10:23:15 358

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除