多线程
奕起学习
这个作者很懒,什么都没留下…
展开
-
java并发编程之组合对象学习笔记
使用java监视器模式的简单线程安全计数器: Arraylist和hashMap这样的基本容器类是非线程安全的。原创 2017-09-04 21:54:37 · 203 阅读 · 0 评论 -
使用JAVA编程实现多人聊天室(多线程实践)
程序可以实现多人聊天,并且效果和性能还算可以。而且每个客户端连接进服务器时,都会随机产生一个随机数作为自身的标志,避免通话过程中,分辨不清彼此,而导致交流效果不好。测试过程中一共连入了10个客户端进行程序稳定性的测试,程序运行结果稳定,符合实验预期结果,充分说明了程序的鲁棒性较强。原创 2017-11-30 19:19:59 · 33971 阅读 · 35 评论 -
Java多线程同步程序
编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示) 程序分析: 1.票数要使用同一个静态值; 2.为保证不会出现卖出同一个票数,要java多线程同步锁。 设计思路: 1.创建一个站台类Station,继承Thread,重写run方法,在run方法里面执行售票操作!售票要使用同步锁:即有一个站台卖这张票时,其他站台要等这张票卖完! 2.创建主方法调用类 程序源代原创 2017-11-30 19:10:23 · 456 阅读 · 0 评论 -
java并发编程实践之共享对象学习笔记
过期数据 *线程安全的可变整数访问器:package com.yihong.javaThread; import net.jcip.annotations.*; /* * 线程安全的可变整数访问器 */ @ThreadSafe public class SynchronizedInteger { @GuardedBy("this") private int value; publ原创 2017-09-03 14:48:11 · 528 阅读 · 0 评论 -
线程安全性
无状态对象永远是线程安全的。 *一个无状态的Servlet:package com.yihong.javaThread;import java.math.BigInteger; import javax.servlet.*;import net.jcip.annotations.*;@ThreadSafe public class StatelessFactorizer extends Gener原创 2017-09-02 16:12:16 · 365 阅读 · 0 评论 -
java并发编程实践学习笔记
通过eclipse创建maven工程: http://jingyan.baidu.com/article/2fb0ba40a2b22b00f2ec5faf.html 通过增加synchronized修饰来实现线程安全:package com.yihong.javaThread; import net.jcip.annotations.*;@ThreadSafe public class Sequ原创 2017-09-01 21:47:39 · 212 阅读 · 0 评论 -
java并发编程的一些总结
%.1.不应用线程池的缺点 有些开发者图省事,遇到需要多线程处理的地方,直接new Thread(…).start(),对于一般场景是没问题的,但如果是在并发请求很高的情况下,就会有些隐患: 新建线程的开销。线程虽然比进程要轻量许多,但对于JVM来说,新建一个线程的代价还是挺大的,决不同于新建一个对象 资源消耗量。没有一个池来限制线程的数量,会导致线程的数量直接取决于应用的并发量,这样有潜在转载 2017-08-31 19:58:47 · 190 阅读 · 0 评论 -
blockingqueue的功能和使用
BlockingQueue也是java.util.concurrent下的主要用来控制线程同步的工具。 主要的方法是:put、take一对阻塞存取;add、poll一对非阻塞存取。 插入: 1)add(anObject):把anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则抛出异常,不好 2原创 2017-08-31 11:48:29 · 585 阅读 · 0 评论 -
线程池学习笔记
线程池的5中创建方式: 1、Single Thread Executor : 只有一个线程的线程池,因此所有提交的任务是顺序执行:ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();2、Cached Thread Pool : 线程池里有很多线程需要同时执行,老的可用线程将被新的任务触发重新执行原创 2017-08-30 22:38:02 · 188 阅读 · 0 评论 -
java线程锁之lock
lock和synchronized的区别 1)Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问; 2)Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完之后,系统会转载 2017-08-30 18:05:58 · 345 阅读 · 0 评论 -
synchronized同步代码块
加同步格式: synchronized( 需要一个任意的对象(锁) ){ 代码块中放操作共享数据的代码。 } *synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。 如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并原创 2017-08-30 14:54:50 · 505 阅读 · 0 评论 -
java多线程实现的两种方式
通过继承Thread的方式实现多线程 package cn.itcast_01_mythread.thread.testThread;import java.util.Random;public class MyThreadWithExtends extends Thread { String flag; public MyThreadWithExtends(String flag){原创 2017-08-30 14:31:53 · 240 阅读 · 0 评论 -
java并发实践编程学习笔记
hashmap不是线程安全的。 并发使用的诀窍:原创 2017-09-05 21:42:24 · 257 阅读 · 0 评论 -
关于线程池,你看这一篇就够了
本文主要从为什么要用线程池、线程池的参数、线程池中任务有三种排队策略、线程池的拒绝规则、线程池大小设置规则几个方面来介绍线程池。原创 2018-12-09 19:18:25 · 1070 阅读 · 0 评论