Java线程的同步
一、同步问题提出
线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。
例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。
public class Foo {
private int x = 100;
public int getX() {
return x;
}
public int fix(int y) {
x = x - y;
return x;
}
}
public class MyRunnable implements Runnable {
private Foo foo = new Foo();
public static void main(String[] args) {
MyRunnable r = new MyRunnable();
Thread ta = new Thread(r, "Thread-A");
Thread tb = new Thread(r, "Thread-B");
ta.start();
tb.start();
}
public void run() {
for (int i = 0; i < 3; i++) {
this.fix(30);
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentTh
相关文档:
Server:
ServerSocket server = new ServerSocket(PORT, 1); // 打开Server并监听
Socket client = server.accept(); ......
一、基于RMI的一次完整的远程通信过程的原理:
1. 客户端发起请求,请求转交至RMI客户端的stub类;
2. stub类将请求的接口、方法、参数等信息进行序列化;
3. 基于socket将序列化后的流传输至服务器端;
4. 服务器端接收到流后转发至相应的skelton类;
5. skelton类将请求的信息反序列化后调用实际的处理类;
6. 处理 ......
package com.gaosheng.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
/**
* 字符串转换成日期
* @param stringdate 要转换的字符串(字符串格式 yyyy-MM-dd)
* @return
*/
public Date getStringtoDate(Strin ......
21、Static Nested Class 和 Inner Class的不同。 Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
22、JSP中动态INCLUDE与静态INCLUDE的区别?动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于 ......
1. Java保存的文件名必须与类名一致;
2. 如果文件中只有一个类,文件名必须与类名一致;
3. 一个Java文件中只能有一个public类;
4. 如果文件中不止一个类,文件 ......