Android多线程研究(7)Java5中的线程并发库

从这一篇开始我们将看看Java 5之后给我们添加的新的对线程操作的API,首先看看api文档:

java.util.concurrent包含许多线程安全、测试良好、高性能的并发构建块,我们先看看atomic包下的AtomicInteger.

import java.util.concurrent.atomic.AtomicInteger;  

public class AtomicIntegerTest {
    private static AtomicInteger data = new AtomicInteger(0);
    public static void main(String[] args) {
        new Thread(new Runnable() {  

            @Override
            public void run() {
                data.incrementAndGet();  //加
            }
        }).start();  

        new Thread(new Runnable() {  

            @Override
            public void run() {
                data.decrementAndGet();  //减
            }
        }).start();
    }
}

使用AtomicInteger可以很方便的实现线程之间的数据共享,如果某个成员变量要被多个线程操作则可以使用AtomicInteger来处理,其他数据类型也有对应的Atomic.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索线程
, 多线程
, new
, public
, atomicinteger
, concurrent
, java并发 多线程
, java多线程并发
java线程并发
android 多线程并发、android并发和多线程、python 多线程并发、c 多线程并发、java多线程与高并发,以便于您获取更多的相关知识。

时间: 2024-09-20 19:25:08

Android多线程研究(7)Java5中的线程并发库的相关文章

Android多线程研究(6)多线程之间数据隔离

在上一篇<Android多线程研究(5)--线程之间共享数据>中对线程之间的数据共享进行了学习和研究,这一篇我们来看看如何解决多个线程之间的数据隔离问题,什么是数据隔离呢?比如说我们现在开启了两个线程,这两个线程都要同时给同一个全局变量data赋值,各个线程操作它赋值后的变量数据,这里就需要用到隔离.先看一段代码: import java.util.Random; public class ThreadLocalTest { private static int data = 0; publi

Android多线程研究(1) 线程基础及源码剖析

从今天起我们来看一下Android中的多线程的知识,Android入门容易,但是要完成一个完善的产品却不容易,让我们从线程开始一步步深入Android内部. 一.线程基础回顾 package com.maso.test; public class TraditionalThread { public static void main(String[] args) { /* * 线程的第一种创建方式 */ Thread thread1 = new Thread(){ @Override publi

Android多线程研究(4)从一道面试题说起

有一道这样的面试题:开启一个子线程和主线程同时运行,子线程输出10次后接着主线程输出100次,如此反复50次.先看下面代码: package com.maso.test; /** * * @author Administrator * 两个线程,其中是一个主线程,第一个线程先运行输出10次,主线程接着运行输出100次,如此反复50次 */ public class ThreadTest3 implements Runnable{ private static Test test; @Overri

Android多线程研究(5)线程之间共享数据

一.如果是每个线程都执行相同的代码,则可以使用同一个Runnable来实现共享 public class MultiThreadShareData { public static void main(String[] args) { new Thread(new ShareData()).start(); new Thread(new ShareData()).start(); } static class ShareData implements Runnable{ private int j

Android多线程研究(3)线程同步和互斥及死锁

为什么会有线程同步的概念呢?为什么要同步?什么是线程同步?先看一段代码: package com.maso.test; public class ThreadTest2 implements Runnable{ private TestObj testObj = new TestObj(); public static void main(String[] args) { ThreadTest2 tt = new ThreadTest2(); Thread t1 = new Thread(tt,

Android多线程研究(2)定时器

先来看一段代码: public static void main(String[] args) { new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("阳光小强"); } }, 5000); int i = 0; while(true){ System.out.println(i++); try { Thread.sleep(1000); } catch (In

Android多线程断点续传下载示例详解

一.概述 在上一篇博文<Android多线程下载示例>中,我们讲解了如何实现Android的多线程下载功能,通过将整个文件分成多个数据块,开启多个线程,让每个线程分别下载一个相应的数据块来实现多线程下载的功能.多线程下载中,可以将下载这个耗时的操作放在子线程中执行,即不阻塞主线程,又符合Android开发的设计规范. 但是当下载的过程当中突然出现手机卡死,或者网络中断,手机电量不足关机的现象,这时,当手机可以正常使用后,如果重新下载文件,似乎不太符合大多数用户的心理期望,那如何实现当手机可以正

Android开发之旅:进程与线程

引言 当应用程序的组件第一次运行时,Android将启动一个只有一个执行线程的Linux进程.默认,应用程序所有的组件运行在这个进程和线程中.然而,你可以安排组件运行在其他进程中,且你可以为进程衍生出其它线程.本文从下面几点来介绍Android的进程与线程: 1.进程 2.线程 2.1.远程过程调用(Remote procedure calls,RPCs) 2.2.线程安全方法 1.进程 组件运行于哪个进程中由清单文件控制.组件元素--<activity>.<service>.&l

Java多线程与并发库高级应用

想快速精通多线程?看这里  http://blog.chinaunix.net/uid-540802-id-4431193.html 什么是线程         线程,是程序执行流的最小单元.是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可以与同属一个进程的其他线程共享进程所拥有的全部资源,一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行.在单个程序中同时运行多个线程完成不同的工作,称为多线程.当自己想