![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 并发
程序邦
1. 擅长Android 开发
2. 擅长React Native 跨平台开发
展开
-
Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭
最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆。每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合。假设:3个人在不同的地方上班,必须等到3个人到场才能吃饭,用程序如何实现呢?作为一名资深屌丝程序猿,开始写代码实现:[java] view plain copy转载 2017-09-13 11:13:15 · 277 阅读 · 0 评论 -
Java多线程和并发性知识点总结
一、 什么是进程、线程?线程和进程的区别?1. 进程 当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序。 进程是操作系统进行资源分配和调度的一个独立单位。 进程的三个特征:独立性 独立存在的实体,每个进程都有自己独立私有的一块内存空间。动态性 程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。并发性 多个进程可在单处理器上并发执行。并原创 2017-09-11 10:33:48 · 325 阅读 · 0 评论 -
【Java并发编程】之六:Runnable和Thread实现多线程的区别(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17161237 Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下优势: 1、可以避免由于Java的单转载 2017-09-11 14:36:42 · 260 阅读 · 0 评论 -
【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17101369volatile用处说明 在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下,线转载 2017-09-11 14:22:57 · 175 阅读 · 0 评论 -
【Java并发编程】之四:守护线程与线程阻塞的四种情况
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17099981 守护线程 Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程。 守护线程作用是为其他前台线程的运行转载 2017-09-11 14:14:53 · 189 阅读 · 0 评论 -
【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17095733挂起和恢复线程 Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的。如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件——其他线程在等待该线程释放转载 2017-09-11 14:12:06 · 384 阅读 · 0 评论 -
【Java并发编程】之二:线程中断(含代码)
使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。这里需要注意的是,如果只是单纯的调用interrupt()方法,线程并没有实际被中断,会继续往下执行。下面一段代码演示了休眠线程的中断:[java]转载 2017-09-11 11:22:28 · 203 阅读 · 0 评论 -
【Java并发编程】之一:可重入内置锁
转载自:http://blog.csdn.net/ns_code/article/details/17014135每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁。线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁。获得内置锁的唯一途径就是进入由这个锁保护的同步代码块或方法。当某个线程请求一个由其他线程持有的锁时,发出请求的线程就会阻塞。然转载 2017-09-11 11:19:10 · 216 阅读 · 0 评论 -
Android开发之线程池使用总结
线程池算是Android开发中非常常用的一个东西了,只要涉及到线程的地方,大多数情况下都会涉及到线程池。Android开发中线程池的使用和Java中线程池的使用基本一致。那么今天我想来总结一下Android开发中线程池的使用。OK,假如说我想做一个新闻应用,ListView上有一个item,每个item上都有一张图片需要从网络上加载,如果不使用线程池,你可能通过下面的方式来开启原创 2017-09-18 15:54:03 · 416 阅读 · 0 评论 -
Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代
继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说过会和Timer一直单独写一篇Blog.1、Timer管理延时任务的缺陷a、以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清洗;然而Timer是存在一些缺陷的,因为Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,转载 2017-09-13 11:30:31 · 293 阅读 · 0 评论 -
Java / Android 基于Http的多线程下载的实现
先说下原理,原理明白了,其实很简单:a、对于网络上的一个资源,首先发送一个请求,从返回的Content-Length中回去需要下载文件的大小,然后根据文件大小创建一个文件。[java] view plain copythis.fileSize = conn.getContentLength();// 根据响应获取文件大小 Fil原创 2017-09-13 11:28:33 · 436 阅读 · 0 评论 -
Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
继续并发专题~这次介绍CyclicBarrier:看一眼API的注释:[java] view plain copy/** * A synchronization aid that allows a set of threads to all wait for * each other to reach a common转载 2017-09-13 11:25:03 · 236 阅读 · 0 评论 -
Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
继续并发专题~FutureTask 有点类似Runnable,都可以通过Thread来启动,不过FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞。由于:FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞这两个特性,我们可以用来预先加载一些可能用到资源,然后要用的时候,调用get方法获取(如果资源加载完,直转载 2017-09-13 11:21:46 · 373 阅读 · 0 评论 -
JAVA 线程优化及线程池管理
一:优化HandlerThread我们在 activity中start了一个HandlerThread,那么这个线程会启动一个looper消息循环,当activity退出了,这个HandlerThread线程并没有终止,还是在那里做looper死循环,如果页面跳转频繁重复,这样的无用线程会越来越多,占用系统资源,最终导致进程crash掉。所以当HandlerThread原创 2017-09-11 10:13:24 · 565 阅读 · 0 评论