创建线程池
    
            
摘要:* 创建线程池对象 @Beanpublic ThreadPoolTaskExecutor getThreadPool() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSiz
        
阅读全文
 
        
            
    创建线程池
    
            
摘要:submit()方法的作用:将线程放到线程池里并执行
        
阅读全文
 
        
            
    创建线程池的方式
    
            
摘要:Executors 工具类型。为Executor线程池提供工具方法。可以快速的提供若干种线程池。如:固定容量的,无限容量的,容量为1等各种线程池。 线程池是一个进程级的重量级资源。默认的生命周期和JVM一致。当开启线程池后,直到JVM关闭为止,是线程池的默认生命周期。如果手工调用shutdown方法
        
阅读全文
 
        
            
    同步容器
    
            
摘要:解决并发情况下的容器线程安全问题的。给多线程环境准备一个线程安全的容器对象。 线程安全的容器对象: Vector, Hashtable。线程安全容器对象,都是使用synchronized方法实现的。 concurrent包中的同步容器,大多数是使用系统底层技术实现的线程安全。类似native。Jav
        
阅读全文
 
        
            
    synchronized关键字
    
            
摘要:synchronized锁什么? 锁对象 可能锁对象包括: this, 临界资源对象(多个线程都能访问的那个对象), Class类对象 锁对象:synchronized (this)和synchronized 方法都是锁当前对象 加锁的目的: 就是为了保证操作的原子性
        
阅读全文
 
        
            
    线程安全与线程不安全的概念
    
            
摘要:线程安全:所有的请求共享一个对象,如果这个对象没有可修改的属性,那就是线程安全的 线程不安全:所有的请求共享一个对象,如果这个对象有可修改的属性,那就是线程不安全的 局部变量不存在线程不安全问题,所以在方法里定义的变量不存在线程不安全问题,例如在方法中定义StringBuider类型变量不会存在线程
        
阅读全文
 
        
            
    定位程序问题出现的原因工具-jstack
    
            
摘要:jstack还可以生成线程快照 如何使用jstack: 1.打开命令行,输入jstack 在任务管理器中就可看到对应进程id 2.在命令行中输入 jstack -l 进程id 这样就可得到进程中所有的线程
        
阅读全文
 
        
            
    线程的交互:互斥与同步
    
            
摘要:java中实现互斥是通过关键字synchronized,同步是通过wait()和notifyAll()这二个方法来实现。比如
        
阅读全文
 
        
            
    正确的停止java中的线程
    
            
摘要:stop()方法不是一个正确的停止线程方法。 正确的停止方法:设置退出旗标
        
阅读全文