java多线程基本知识
来源:互联网 发布:外贸企业数据 编辑:程序博客网 时间:2024/06/04 17:55
1.java中想实现并发的对象需要实现java.lang.Runnable接口,实现其中的run方法。
2.可以用new Thread(new 并发类()).start(); 用Thread类来实现并发,java.lang.Thread类也实现了Runnable接口,在run方法中调用了一些native的方法。
3.在Java SE5/6以后,可以用ExecutorService来操作线程,比较方便,可以创建不同种类的线程池。
创建大小可变(需要多少有多少)的线程池:ExecutorService executorService = Executors.newCachedThreadPool();
创建固定大小的线程池:ExecutorService executorService = Executors.newFixedThreadPool(2);
创建单一的Executor:ExecutorService executorService = Executors.newSingleThreadExecutor();
然后调用executorService.execute(new 并发类());就可以实现并发了
最后调用executorService.shutdown()关闭服务。
可以给newCachedThreadPool()传入一个实现了ThreadFactory接口的对象,按照需求创建线程。
4.用Thead.sleep()方法使线程休眠,默认是毫秒单位,Java SE5/6之后可以使用TimeUnit.MILLISECONDS.sleep(100);来显示的指定单位,更容易理解。
5.如果一个需要知道一个线程执行完的返回值,则需要将java.lang.Runnable改成java.util.concurrent.Callable<>,用泛型声明返回类型,然后调用executorService.submit()方法就可以获得返回值了。
6.为了保护线程安全,防止资源冲突,在并发有可能同时执行同一方法时,需要给方法加上synchronized关键字,这样java就能在这个方法被调用的时候自动给方法加上锁,防止同时被调用。
7.java中将读或写32位以下(除long double(64)之外的所有基本类型)的操作称为原子操作,保证操作是不可分离的。
但是注意i++并不是原子操作,分三步进行,取,加,存
- java多线程基本知识
- java 多线程基本知识
- Java多线程---基本知识
- Java多线程基本知识小结
- java多线程基本知识体系
- Java学习笔记【多线程基本知识】
- 【JavaSE】Java中多线程基本知识
- Java基本知识之三(多线程)
- Java多线程整理(一)-基本知识
- 多线程基本知识
- 多线程 - 基本知识
- 多线程基本知识
- 多线程基本知识
- 多线程基本知识
- 多线程基本知识
- Java多线程设计(二)线程的基本知识(1)
- java基本知识
- java基本知识
- MySQL主从服务器的一些技巧
- 【转】DBA需要的技能
- 【转】我说一下我学习oracle的经历
- 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.
- mysql(2) access denied for user 的解决方法
- java多线程基本知识
- LED驱动实例
- [linux]vi/vim中的替换命令详解
- 使用线性探测法构造哈希表
- spring & aop- hello world (一)
- 静态库的编译方法 本来源自孙东风的blog,略添了部分
- 获取Android手机中SIM卡状态
- 银行业务调度
- Java回调方法