一道面试题TT.java
锁定对象,访问资源的方法都要考虑到,所有能访问资源的方法都加锁
生产者消费者问题
wait方法,发生了一个阻塞性事件,已经满了
直到调用notify实现多个线程之间进行通信
sleep始终抱着锁
notify方法叫醒一个现在正在wait在这个对象上的线程
notifyAll
wait与sleep的区别
wai时别的线程可以访问锁定对象
调用wait方法的时候必须锁定该对象
Sleep时别的线程也不可以访问锁定对象
线程总结:
线程、进程概念
创建和启动线程的方式
sleep
join
yiel...


- [ln_ydc] 哦,谢谢指教 03/14 21:32
- [phoenixbsd] 兄弟,难不成a命令不能改写内存单元内容?以汇编指令的格式在内存中写入一条机器指令! 03/14 18:43
- [游客] (3)mov al,23h ax=3123H (4)add ax,ax a 03/11 21:58
- [游客] 正确,我觉得用2^N这样的表示最好计算 ^_^ 03/11 21:57
[2010-03-11 19:56] 线程_5_2010_03_11
阅读全文 |
评论次数(0) |
浏览次数(599) |
所属类型(java)
[2010-03-10 21:04] 线程_4_2010_03_10
线程同步
synchronized锁定当前对象
(1)synchronized(this){………}
(2)public synchronized void add(){…………….}
执行当前方法的时候,锁定当前对象
死锁
原理:某线程a在执行过程中,锁定了某个对象b,还需要锁定另一个对象c
另一个线程也需要锁定两个对象,锁定对象c,还需锁定对象b
哲学家就餐问题;
代码清单
-------------------------------------------------------------------
public class TestSyn...
synchronized锁定当前对象
(1)synchronized(this){………}
(2)public synchronized void add(){…………….}
执行当前方法的时候,锁定当前对象
死锁
原理:某线程a在执行过程中,锁定了某个对象b,还需要锁定另一个对象c
另一个线程也需要锁定两个对象,锁定对象c,还需锁定对象b
哲学家就餐问题;
代码清单
-------------------------------------------------------------------
public class TestSyn...
阅读全文 |
评论次数(0) |
浏览次数(691) |
所属类型(java)
[2010-03-09 20:12] 线程_3_2010_03_09
同样一个线程类可以起两个线程
TestThread2.java
怎样让一个正常执行的线程停止
TestThread4.java
代码清单:
----------------------------------------------------------------------
public class TestThread2{
public static void main(String [] args){
Runner2 r = new Runner2();
Thread t1 = new Thread(r);
Thread...
TestThread2.java
怎样让一个正常执行的线程停止
TestThread4.java
代码清单:
----------------------------------------------------------------------
public class TestThread2{
public static void main(String [] args){
Runner2 r = new Runner2();
Thread t1 = new Thread(r);
Thread...
阅读全文 |
评论次数(0) |
浏览次数(621) |
所属类型(java)
[2010-03-09 19:42] 线程_2_2010_03_09
线程控制基本方法
Sleep 方法
Thread 的静态方法
指定的毫秒数
会抛异常
重写的方法不能抛出比被重写方法不同的异常
结束线程:
1. interrupt()
2. stop
3. 定义一个boolean flag
join方法
合并某个线程
yield方法
让出cpu给其他线程执行的机会
线程的优先级:
线程的优先级用数字表示,范围从1到10,一个线程的缺省优先级是5
Thread.MIN_PRIORITY=1
Thread.MAX_PRIORITY=10
Thread.NORM_PRIORITY=5
使用下述方法...
Sleep 方法
Thread 的静态方法
指定的毫秒数
会抛异常
重写的方法不能抛出比被重写方法不同的异常
结束线程:
1. interrupt()
2. stop
3. 定义一个boolean flag
join方法
合并某个线程
yield方法
让出cpu给其他线程执行的机会
线程的优先级:
线程的优先级用数字表示,范围从1到10,一个线程的缺省优先级是5
Thread.MIN_PRIORITY=1
Thread.MAX_PRIORITY=10
Thread.NORM_PRIORITY=5
使用下述方法...
阅读全文 |
评论次数(0) |
浏览次数(523) |
所属类型(java)
[2010-03-08 22:30] 线程_1_2010_03_08
线程是一个程序内部的顺序控制流
每一个分支都叫一个线程
进程只是一个静态的概念
进程的执行指的是进程里面主线程的执行
线程是进程里的不同的执行路径
操作系统支持多线程
dos只支持单进程
通过java.lang.Thread类
创建新的线程
(1) 定义线程类实现Runnable接口
Thread myThread = new Thread(target)//target为Runnable接口类型
Runnable中只有一个方法:
public void run();用于定义线程运行体
使用Runnable接口可以为多个线程提供共享的数据
在实现Runnable接...
每一个分支都叫一个线程
进程只是一个静态的概念
进程的执行指的是进程里面主线程的执行
线程是进程里的不同的执行路径
操作系统支持多线程
dos只支持单进程
通过java.lang.Thread类
创建新的线程
(1) 定义线程类实现Runnable接口
Thread myThread = new Thread(target)//target为Runnable接口类型
Runnable中只有一个方法:
public void run();用于定义线程运行体
使用Runnable接口可以为多个线程提供共享的数据
在实现Runnable接...
阅读全文 |
评论次数(0) |
浏览次数(769) |
所属类型(java)
[2010-03-07 16:36] IO_Object流_2010_03_07_4
Object流
直接将Object写入或读出
transient关键字
serializable接口
externalizable接口,标记类的对象可以序列化
代码清单:
-------------------------------------------------------------
import java.io.*;
public class TestObjectIO{
public static void main(String args[] )throws Exception{
T t = new T();
t.k = 8;...
直接将Object写入或读出
transient关键字
serializable接口
externalizable接口,标记类的对象可以序列化
代码清单:
-------------------------------------------------------------
import java.io.*;
public class TestObjectIO{
public static void main(String args[] )throws Exception{
T t = new T();
t.k = 8;...
阅读全文 |
评论次数(0) |
浏览次数(322) |
所属类型(java)
[2010-03-07 16:06] IO_Print流_2010_03_07_3
打印流
PrintWriter打印字符
PrintStream打印字节
输出操作不会抛异常
有自动非flush功能
代码清单:
----------------------------------------------------------
import java.io.*;
public class TestPrintStream1{
public static void main(String [] args){
PrintStream ps = null;
try{
FileOutputStream fos =
...
PrintWriter打印字符
PrintStream打印字节
输出操作不会抛异常
有自动非flush功能
代码清单:
----------------------------------------------------------
import java.io.*;
public class TestPrintStream1{
public static void main(String [] args){
PrintStream ps = null;
try{
FileOutputStream fos =
...
阅读全文 |
评论次数(0) |
浏览次数(290) |
所属类型(java)
[2010-03-07 14:49] IO_数据流_2010_03_07_2
数据流:
DataInputStream
DataOutputStream
ByteArrayOutputStream字节数组
ByteArrayInputStream
先写先读
先进先出
代码清单:
-------------------------------------------------------
import java.io.*;
public class TestDataStream{
public static void main(String [] args){
ByteArrayOutputStream baos = ...
DataInputStream
DataOutputStream
ByteArrayOutputStream字节数组
ByteArrayInputStream
先写先读
先进先出
代码清单:
-------------------------------------------------------
import java.io.*;
public class TestDataStream{
public static void main(String [] args){
ByteArrayOutputStream baos = ...
阅读全文 |
评论次数(-1) |
浏览次数(325) |
所属类型(java)
[2010-03-07 14:18] IO_转换流_2010_03_07_1
流的分类:
按数据流的方向不同可以分为输入六和输出流;
按处理数据单位不同可以分为字节流和字符流;
按照功能不同可分为节点流和处理流;
转换流:
InputStreamReader
OutputStreamWriter
InputStream字节流
Reader字符流
OutputStream字节流
Writer字符流
代码清单:
-------------------------------------------------------
import java.io.*;
public class TestTransForm1{
pub...
按数据流的方向不同可以分为输入六和输出流;
按处理数据单位不同可以分为字节流和字符流;
按照功能不同可分为节点流和处理流;
转换流:
InputStreamReader
OutputStreamWriter
InputStream字节流
Reader字符流
OutputStream字节流
Writer字符流
代码清单:
-------------------------------------------------------
import java.io.*;
public class TestTransForm1{
pub...
阅读全文 |
评论次数(0) |
浏览次数(289) |
所属类型(java)
页码数(1):
1