I am not happy. God bless me.
1.线程。新建一个线程的方法是extends Thread类。重写run方法。或者implements Runable接口。实现run方法。线程的方法:
a.void join() //等待终止指定的线程
b.void join(long millis)
c.Tread.State getState()
d.void setPrority(int new Prority)
e.static int MIN_PRIORITY
d.static void yield;
2.锁机制。java.util.concurrent.locks.lock类中方法:
a.void lock();//获取一个锁,如果锁被其他对象拥有则阻塞
b.unlock();//释放一个锁
java.util.concurrent.locks.ReentrantLock
a.reentrantLock() :构建一个可以被用来保护临界区的可重入锁
b.ReentratLock(boolean fair);//构建一个带有公平策略的锁
3.未捕获异常处理器
4.java.util.concurrent.locks.locks.Condition
a.void await(); //不满足条件的等待
b.void signalAll();//唤醒所有等待该条件的
c.void signal();//随机唤醒一个等待该条件的
5.synchronized关键字:
synchronized等同于 lock之后再unlock
6.将静态方法声明为synchronized也是合法的。如果调用该方法,该方法获得该对象的内部锁。别的对象就不能调用该方法了。
7.java.lang.Object
a.notifyAll()
b.notify();
c.wait();
d.wait(long millis)
8.同步阻塞. synchronized (obj)
{
do something
}
9.监视器:
a.监视器是只包含私有域的类
b.每个监视器类的对象有一个相关的锁
c.使用该锁对所有的方法进行加锁。
d.该锁可以有任意多个相关条件
如果一个方法用synchronized关键字则采用了监视器概念!
10.volatile域:valatile关键字为实例域的同步访问提供了一种免锁机制。如果声明一个域为volatile,那么编译器和虚拟机就知道该域是可能被另一个线程并发更新的。
11.死锁。要的资源互相得不到满足。
12.读写锁:
①构造一个ReentrantReadWriteLock();
private ReentrantReadWriteLock rwl = new ReentranReadWriteLock();
②抽取读锁和写锁
private Lock readLock = rwl.readLock();
private Lock writeLock = rwl.writeLock();
③对所有的访问者家读锁
readLock.lock
try
{
}
finally
{
readLock.unlock();
}
④对所有的修改者加写锁
writeLock.lock()
try
{
}
finally
{
writeLock.unlock();
14.阻塞队列:如果用队列当做线程管理工具来使用,将要用到put和take方法。当试图向满的队列中添加或从空的队列中中移除元素时,add、remove和eleme nt操作抛出异常!如果队列满则put方法阻塞;如果队列空则take方法阻塞。
15.内部类不能声明静态变量
16. ArrayBlockQueue(int capactity) 构造一个指定大小的阻塞队列
LinkedBlockQueue()
DelayQueue();
PriorityBlockQueue();//无边界阻塞优先队列
17.java.util.concurrent.BlockQueue<E> 接口的方法
a. void put() ;//添加一个元素
b. E take(); //移除一个元素
c. boolean offer(E element, long time, TimeUnit unit)
18.线程安全集合:
19.线程池(Thread pool):如果程序中创建了大量的生命期很短的线程,应该使用线程池。同时线程池可以控制最大并发线程的数目。并发的线程数量太大会大大降低系统性能。
20.执行器(Executeor):该类中有许多静态工厂方法构建线程池。
21.newCachedThreadPool方法构建一个线程池。对于每个任务如果有空闲线程,则执行,如果没有则创建.
newCachedThreadPool方法构建一个具有固定大小的线程池。如果任务数大于空闲线程则将人物放到阻塞队列中。
newSingleThreadExecutor大小为1的线程池
上述三个方法都实现了ExecutorService接口的ThreadPoolExecutor方法。
分享到:
相关推荐
Java编程语言是软件开发...总结,Java基础知识的学习涵盖了许多方面,从基本语法到面向对象编程,再到集合框架、异常处理、I/O流和多线程。通过理论学习与实践操作相结合,相信你一定能成功入门并逐步精通Java编程。
Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础...
"Java基础知识学习"涵盖了从入门到进阶的各种概念,对于初学者或是需要巩固基础的开发者来说,这些都是不可或缺的知识点。 首先,Java的学习始于安装Java Development Kit (JDK),这是编写、编译和运行Java程序所需...
JAVA基础知识学习课件是针对初学者或在校大学生设计的一套完整的JAVA编程教程。这个课程涵盖了JAVA语言的基础概念,旨在帮助学习者建立起扎实的JAVA编程基础。以下是对每个压缩包文件内容的详细解释: 1. **lesson7...
【Java基础知识学习文档】 Java是一种由Sun Microsystems公司(现已被Oracle公司收购)的詹姆斯·高斯林(James Gosling)创建的高级编程语言,自1995年发布以来,因其可移植性、安全性和高性能而备受推崇。Java...
这篇“java基础知识学习笔记”是为初学者设计的,涵盖了从入门到精通的关键概念,旨在帮助新手快速掌握Java编程。 首先,从入门阶段开始,Java的学习会从安装JDK(Java Development Kit)开始,这是编写、编译和...
JAVA基础知识学习零基础ppt课件 本资源主要讲解了JAVA基础知识,包括JAVA开发环境介绍、编程入门、标示符、关键字、数据类型、表达式、流程控制、数组、常用数据结构及算法、面向对象编程OOP、封装、继承、多态、...
这份"Java基础知识学习笔记"显然是一份集大成者的学习资料,对于初学者和有一定经验的开发者来说,都是宝贵的资源。以下是对这些笔记可能包含的重要知识点的详细说明: 1. **Java语法基础**:包括变量、数据类型...
Java 基础知识学习教程 - 1 接触 Java 本教程主要介绍 Java 语言的历史、工作原理、特点、下载安装、基本语法和编程实践。通过本教程,读者可以了解 Java 语言的发展历史、基本概念和编程基础, lays a solid ...
JAVA基础知识学习(零基础)
这份“Java基础知识学习--自己整理.zip”压缩包显然是一个精心整理的Java初学者教程,包含了作者的学习笔记和心得,旨在帮助新手快速入门。下面将详细阐述Java的基础知识。 **一、Java简介** Java是由Sun ...
Java基础知识学习教案.pptx
开发语言-Java基础知识学习
java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...
非常好的一个学习Java的ppt,比较初级,讲的很清楚,值得下载学习。
学习Spring必学的Java基础知识(含数据库事务基础知识)
java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...
java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...
java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...