<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_28355331的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_28355331</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_28355331]]></copyright><item><title><![CDATA[java常用的几种线程池比较]]></title><link>https://blog.youkuaiyun.com/qq_28355331/article/details/82967527</link><guid>https://blog.youkuaiyun.com/qq_28355331/article/details/82967527</guid><author>qq_28355331</author><pubDate>Mon, 08 Oct 2018 14:32:53 +0800</pubDate><description><![CDATA[1. 为什么使用线程池
诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器，这种方式可能是通过网络协议（例如 HTTP、FTP 或 POP）、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达，服务器应用程序中经常出现的情况是：单个任务处理的时间很短而请求的数目却是巨大的。
构建服务器应用程...]]></description><category></category></item><item><title><![CDATA[CountDownLatch的简单应用]]></title><link>https://blog.youkuaiyun.com/qq_28355331/article/details/82967356</link><guid>https://blog.youkuaiyun.com/qq_28355331/article/details/82967356</guid><author>qq_28355331</author><pubDate>Mon, 08 Oct 2018 14:19:42 +0800</pubDate><description><![CDATA[CountDownLatch的概念

CountDownLatch是一个同步工具类，用来协调多个线程之间的同步，或者说起到线程之间的通信（而不是用作互斥的作用）。
CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后，再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后，计数器的值就会减一。当计数器的值为0时，表示所有的线程都已经完成了任...]]></description><category></category></item><item><title><![CDATA[三条线程A线程打印我 B线程打印爱 C线程打印你 如此循环十次（2种方法）]]></title><link>https://blog.youkuaiyun.com/qq_28355331/article/details/82963740</link><guid>https://blog.youkuaiyun.com/qq_28355331/article/details/82963740</guid><author>qq_28355331</author><pubDate>Mon, 08 Oct 2018 09:39:51 +0800</pubDate><description><![CDATA[package yingshe;

public class Abc {
    int flag=1;//开关 为1时A执行，2时B执行，3时C执行

    public synchronized void Aa(){
        if(flag==1){
        	System.out.print(&amp;quot;我&amp;quot;);
        	flag=2;
        	this.noti...]]></description><category></category></item><item><title><![CDATA[类锁 synchronized对象锁 和 Lock对象锁]]></title><link>https://blog.youkuaiyun.com/qq_28355331/article/details/82960472</link><guid>https://blog.youkuaiyun.com/qq_28355331/article/details/82960472</guid><author>qq_28355331</author><pubDate>Sun, 07 Oct 2018 19:31:34 +0800</pubDate><description><![CDATA[在并发环境下，解决共享资源冲突问题时，可以考虑使用锁机制。

对象锁

所有对象都自动含有单一的锁。
JVM负责跟踪对象被加锁的次数。如果一个对象被解锁，其计数变为0。在任务（线程）第一次给对象加锁的时候，计数变为1。每当这个相同的任务（线程）在此对象上获得锁时，计数会递增。
只有首先获得锁的任务（线程）才能继续获取该对象上的多个锁。
每当任务离开一个synchronized方法，计数递减，当计数...]]></description><category></category></item><item><title><![CDATA[synchronized死锁案例]]></title><link>https://blog.youkuaiyun.com/qq_28355331/article/details/82960441</link><guid>https://blog.youkuaiyun.com/qq_28355331/article/details/82960441</guid><author>qq_28355331</author><pubDate>Sun, 07 Oct 2018 19:28:45 +0800</pubDate><description><![CDATA[synchronized死锁案例
同步可以保证资源共享操作的正确性，但是过多同步也会产生死锁问题
class Zhangsan{ // 定义张三类 
    public void say(){ 
        System.out.println(&quot;张三对李四说：“你给我娃娃，我就把糖给你。”&quot;) ; 
    } 
    public void get(){ 
        System...]]></description><category></category></item><item><title><![CDATA[Lock死锁的案例]]></title><link>https://blog.youkuaiyun.com/qq_28355331/article/details/82960075</link><guid>https://blog.youkuaiyun.com/qq_28355331/article/details/82960075</guid><author>qq_28355331</author><pubDate>Sun, 07 Oct 2018 18:35:38 +0800</pubDate><description><![CDATA[死锁的案例
死锁：线程A和线程B相互等待对方持有的锁导致程序无限死循环下去
（1）两个线程里面分别持有两个Object对象：lock1和lock2。这两个lock作为同步代码块的锁；
（2）线程1的run（）方法中同步代码块先获取lock1的对象锁，Thread.sleep(xxx)，然后接着获取lock2的对象锁。这么做主要是为了防止线程1启动一下子就连续获得了lock1和lock2两个对象的对...]]></description><category></category></item></channel></rss>