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是一种由Sun Microsystems公司(现已被Oracle公司收购)的詹姆斯·高斯林(James Gosling)创建的高级编程语言,自1995年发布以来,因其可移植性、安全性和高性能而备受推崇。Java...
这篇“java基础知识学习笔记”是为初学者设计的,涵盖了从入门到精通的关键概念,旨在帮助新手快速掌握Java编程。 首先,从入门阶段开始,Java的学习会从安装JDK(Java Development Kit)开始,这是编写、编译和...
JAVA基础知识学习零基础ppt课件 本资源主要讲解了JAVA基础知识,包括JAVA开发环境介绍、编程入门、标示符、关键字、数据类型、表达式、流程控制、数组、常用数据结构及算法、面向对象编程OOP、封装、继承、多态、...
Java基础知识学习交流是每个Java开发者必须经历的过程,尤其对于初学者而言,理论知识与实践能力的结合至关重要。本文将深入探讨Java开发专家所提出的一些掌握Java的基础标准,这些标准主要针对J2SE部分。 首先,...
这份"Java基础知识学习笔记"显然是一份集大成者的学习资料,对于初学者和有一定经验的开发者来说,都是宝贵的资源。以下是对这些笔记可能包含的重要知识点的详细说明: 1. **Java语法基础**:包括变量、数据类型...
这份“java基础知识学习课件”是专为初学者设计的,由专业的学校教师精心制作,旨在帮助学习者轻松掌握Java的核心概念。 在Java的学习中,首先会接触到的是基础语法,包括变量、数据类型、运算符、流程控制语句(如...
"JAVA基础知识学习零基础.ppt"这个文件显然是一个教学资料,旨在引导初学者了解和掌握Java编程的基础知识。 首先,课程涵盖了Java开发环境的介绍和编程入门,这包括如何设置Java开发环境,例如安装Java Development...
JAVA基础知识学习(零基础)
这份“Java基础知识学习--自己整理.zip”压缩包显然是一个精心整理的Java初学者教程,包含了作者的学习笔记和心得,旨在帮助新手快速入门。下面将详细阐述Java的基础知识。 **一、Java简介** Java是由Sun ...
Java基础知识学习教案.pptx
开发语言-Java基础知识学习
java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...
非常好的一个学习Java的ppt,比较初级,讲的很清楚,值得下载学习。
随着对Java基础知识的深入理解,学习者将能够编写出结构清晰、易于维护的代码,并能够运用这些基础知识去探索和学习Java的高级特性,如反射机制、设计模式、框架等。Java的跨平台特性也是其吸引众多开发者的关键优势...
学习Spring必学的Java基础知识(含数据库事务基础知识)
java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...
java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...