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();
}
&
相关文档:
对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于CSDN的经典老贴。
问题一:我声明了什么!
String s = "Hello world!";
许多人都做过这样的事情,但是,我们到底声明了什么? ......
初始化的实际过程为:
在其它任何事物发生之前,将分配给对象的存储空间初始化成二进制的零。
父类static 块或变量
子类static块或变量
父类的显式初始化
父类构造函数
子类的显式初始化
子类的构造函数
此过程中若有父类构造体中调用方法可被子类重载,则JVM会从最低子类对象处寻找此方法,找到则执行,虽然此时对 ......
class Node
{
private Object obj;
private Node next;
//用数据域构造一个节点对象
public Node(Object obj)
{
this.obj=obj;
}
//返回下一节点的对象
public Node getNext()
{
return this.next;
}
//设置本节点的链域
public void setNext(Node next)
{
this.next=next;
}
//返回节点的数 ......
java 代码实现
public static boolean isLetter(char c) {
int k = 0x80;
return c / k == 0 ? true : false;& ......