Java并发和多线程
文章平均质量分 70
快乐少年郎_
这个作者很懒,什么都没留下…
展开
-
一:Java 并发和多线程的介绍
Java 并发和多线程的介绍在过去单 CPU 时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或者进程共享一个 CPU ,并交由操作系统完成多任务间对 CPU 的运行切换,以使得每个任务都有机会获得一定的时间片运行。随着多任务对软件开发者带来新的挑战,程序不在能够独占所有 CPU 时间,所有转载 2016-06-22 18:50:05 · 753 阅读 · 0 评论 -
二 优点
尽管面临很多挑战,多线程还是有一些优点使得它被一直使用。如下:资源利用更好程序设计在某些情况下更简单程序响应更快资源利用更好想象一下,一个应用程序需要从本地文件系统中读取和处理文件的情景。比方说,从磁盘读取一个文件需要 5 秒,处理一个文件需要 2 秒。处理两个文件则需要5 秒读取文件 A2 秒处理文件 A5 秒读取文件 B2 秒处理文件 B---------------总共需要转载 2016-06-22 19:52:55 · 335 阅读 · 0 评论 -
三:如何创建并运行 Java 线程
Java 线程类也是一个 Object 类,它的实例都继承自 java.lang.Thread 或其子类。可以用如下方式创建一个 Java 线程;Thread thread = new Thread();执行线程可以调用 start() 方法:thread.start();在上面的例子中,我们并没有为线程编写运行代码,因此调用方法后线程就终止了。编写线程运行时的代码有两种方式: 创建 Th转载 2016-07-20 09:34:40 · 463 阅读 · 0 评论 -
线程中生产者和消费者
先上代码ValueObject 代码package com.thread.P_C;public class ValueObject { public static String value="";}生产者代码package com.thread.P_C;public class P { private String lock; public P(String lock) {原创 2016-09-19 08:20:05 · 410 阅读 · 0 评论 -
深入生产者与消费者模式
前提 本示例是生产者向堆栈中 List 对象中放入数据,使消费者从 List 堆栈中取出数据。List 最大容量是 1一生产一消费——操作栈MyStack代码import java.util.ArrayList;import java.util.List;public class MyStack { private List list = new ArrayList(); sync原创 2016-09-20 08:32:10 · 1046 阅读 · 0 评论 -
ThreadLocal 的使用
ThreadLocal 的使用 变量值的共享可以使用 public static 变量的形式,所有的线程都使用同一个 public static 变量。如果想实现每一个线程都有自己的共享变量该如何解决?JDK 中提供的类 ThreadLocal 正是为了解决这样的问题。类 Thread Local 主要为了解决的就是每个线程绑定自己的值,可以将 ThreadLocal 类比喻成全局存放数据的盒原创 2016-09-20 20:37:20 · 384 阅读 · 0 评论 -
interrupted() 和 isInterrupted() 的区别
Thread 类中提供了两种方法用来判断线程的状态是不是停止的。就是我们今天的两位主人公 interrupted() 和 isInterrupted() 。interrupted() 官方解释:测试当前线程是否已经中断,当前线程是指运行 this.interrupted() 方法的线程 。public class t12 { public static void main(String原创 2016-09-08 20:39:47 · 7555 阅读 · 2 评论 -
停止线程
Java 中有以下三种停止线程的方法:使用 退出标志,使线程正常退出,也就是当 run 方法完成后终止线程。使用 stop 方法 强行退出,但是不推荐这个方法,因为 stop 和 suspend 及 resume 一样,都是作废过期的方法,使用它们可能产生不可预料的后果(后文有详细说明)。使用 interrupt 方法 中断线程停不了的线程 本示例将调用 interrupt() 方法来停原创 2016-09-08 21:39:10 · 385 阅读 · 0 评论 -
对象及变量的并发访问——Synchronized详解
1:为什么需要同步 多个线程同时访问一个对象中的实例变量进行并发访问的时候会产生“非线程安全”的情况,产生的后果就是“脏读”,也就是取到的数据其实是被更改的;而“线程安全”就是以获得的实例变量的值进行同步处理的,不会出现脏读现象。2:synchronized 同步方法 脏读问题存在于“实例变量”中,如果是方法内部私有变量则不会出现脏读情况。2.1:方法内部私有变量为线程安全public原创 2016-09-27 20:41:10 · 541 阅读 · 0 评论