Skip to content

Commit 1bac0db

Browse files
committed
添加了java-multithread模块synchronized包更新至example9
1 parent 151e365 commit 1bac0db

40 files changed

+1003
-8
lines changed

README.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# 我的java学习笔记
22

3-
43
笔记内容主要是对一些基础特性和编程细节进行总结整理,适合了解java基础语法,想进一步深入学习的人
54

5+
**博客讲解****源码实例**,采用maven构建,分模块学习,涉及反射,代理,多线程,IO,集合类等核心知识。
6+
67
**如果觉得不错,请先在这个仓库上点个star吧**,这也是对我的肯定和鼓励,谢谢了。
78

89
不定时进行调整和补充,需要关注更新的请 Watch、Star、Fork
@@ -19,18 +20,12 @@
1920

2021
- [blogs](/blogs):博客文档
2122
- [java-base](/java-base):java基础巩固部分的模块
22-
- [java-multithread](/java-multithread):多线程部分的模块
23+
- [java-multithread](/java-multithread):多线程模块
2324

2425

2526

2627
# 博客文档
2728

28-
笔记分为两大部分:javase和javaweb
29-
30-
- [javase](/blogs/javase)
31-
- [javaweb](/blogs/javaweb)
32-
33-
3429
**博客目录**
3530

3631
- [javase](/blogs/javase)

blogs/README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# 博客目录
2+
3+
- [javase](/blogs/javase)
4+
- [java基础巩固笔记(1)-反射.md](/blogs/javase/java基础巩固笔记(1)-反射.md)
5+
- [java基础巩固笔记(2)-泛型.md](/blogs/javase/java基础巩固笔记(2)-泛型.md)
6+
- [java基础巩固笔记(3)-类加载器.md](/blogs/javase/java基础巩固笔记(3)-类加载器.md)
7+
- [java基础巩固笔记(4)-代理.md](/blogs/javase/java基础巩固笔记(4)-代理.md)
8+
- [java基础巩固笔记(4)-实现AOP功能的封装与配置的小框架.md](/blogs/javase/java基础巩固笔记(4)-实现AOP功能的封装与配置的小框架.md)
9+
- [java基础巩固笔记(5)-多线程之传统多线程.md](/blogs/javase/java基础巩固笔记(5)-多线程之传统多线程.md)
10+
- [java基础巩固笔记(5)-多线程之共享数据.md](/blogs/javase/java基础巩固笔记(5)-多线程之共享数据.md)
11+
- [java基础巩固笔记(5)-多线程之线程并发库.md](/blogs/javase/java基础巩固笔记(5)-多线程之线程并发库.md)
12+
- [java基础巩固笔记(6)-注解.md](/blogs/javase/java基础巩固笔记(6)-注解.md)
13+
- [javaweb](/blogs/javaweb)
14+
- [javaweb入门笔记(1)-Tomcat.md](/blogs/javaweb/javaweb入门笔记(1)-Tomcat.md)
15+
- [javaweb入门笔记(2)-http入门.md](/blogs/javaweb/javaweb入门笔记(2)-http入门.md)
16+
- [javaweb入门笔记(3)-Servlet.md](/blogs/javaweb/javaweb入门笔记(3)-Servlet.md)
17+
- [javaweb入门笔记(4)-request和response.md](/blogs/javaweb/javaweb入门笔记(4)-request和response.md)
18+
- [javaweb入门笔记(5)-cookie和session.md](/blogs/javaweb/javaweb入门笔记(5)-cookie和session.md)
19+
- [javaweb入门笔记(6)-JSP技术.md](/blogs/javaweb/javaweb入门笔记(6)-JSP技术.md)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.brianway.learning.java.multithread.synchronize.example3;
2+
3+
/**
4+
* Created by Brian on 2016/4/12.
5+
*/
6+
7+
public class MyObject {
8+
synchronized
9+
public void methodA(){
10+
try {
11+
System.out.println("begin methodA threadName="+Thread.currentThread().getName());
12+
Thread.sleep(5000);
13+
System.out.println(Thread.currentThread().getName()+" end");
14+
} catch (InterruptedException e) {
15+
e.printStackTrace();
16+
}
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.brianway.learning.java.multithread.synchronize.example3;
2+
3+
/**
4+
* Created by Brian on 2016/4/12.
5+
*/
6+
7+
/**
8+
* P60
9+
* synchronized方法与锁对象
10+
*/
11+
public class Run3_synchronized01 {
12+
public static void main(String[] args) {
13+
MyObject object = new MyObject();
14+
ThreadA a = new ThreadA(object);
15+
a.setName("A");
16+
ThreadB b = new ThreadB(object);
17+
b.setName("B");
18+
a.start();
19+
b.start();
20+
}
21+
}
22+
23+
/*
24+
public void methodA()没加synchronized
25+
输出:
26+
begin methodA threadName=B
27+
begin methodA threadName=A
28+
A end
29+
B end
30+
31+
-------------------
32+
33+
public void methodA()加synchronized
34+
输出:
35+
begin methodA threadName=A
36+
A end
37+
begin methodA threadName=B
38+
B end
39+
40+
*/
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.brianway.learning.java.multithread.synchronize.example3;
2+
3+
/**
4+
* Created by Brian on 2016/4/12.
5+
*/
6+
public class ThreadA extends Thread{
7+
private MyObject object;
8+
public ThreadA(MyObject object){
9+
super();
10+
this.object = object;
11+
}
12+
13+
@Override
14+
public void run() {
15+
super.run();
16+
object.methodA();
17+
}
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.brianway.learning.java.multithread.synchronize.example3;
2+
3+
/**
4+
* Created by Brian on 2016/4/12.
5+
*/
6+
public class ThreadB extends Thread{
7+
private MyObject object;
8+
public ThreadB(MyObject object){
9+
super();
10+
this.object = object;
11+
}
12+
13+
@Override
14+
public void run() {
15+
super.run();
16+
object.methodA();
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.brianway.learning.java.multithread.synchronize.example4;
2+
3+
/**
4+
* Created by Brian on 2016/4/12.
5+
*/
6+
7+
public class MyObject {
8+
synchronized public void methodA(){
9+
try {
10+
System.out.println("begin methodA threadName="+Thread.currentThread().getName());
11+
Thread.sleep(5000);
12+
System.out.println(Thread.currentThread().getName()+" endTime:"+System.currentTimeMillis());
13+
} catch (InterruptedException e) {
14+
e.printStackTrace();
15+
}
16+
}
17+
18+
synchronized
19+
public void methodB(){
20+
try {
21+
System.out.println("begin methodB threadName="+Thread.currentThread().getName());
22+
Thread.sleep(5000);
23+
System.out.println(Thread.currentThread().getName()+" endTime:"+System.currentTimeMillis());
24+
} catch (InterruptedException e) {
25+
e.printStackTrace();
26+
}
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.brianway.learning.java.multithread.synchronize.example4;
2+
3+
/**
4+
* Created by Brian on 2016/4/12.
5+
*/
6+
7+
/**
8+
* P63
9+
* 两个线程访问同一个对象的不同方法
10+
* 1.一个方法有synchronized,一个没有。线程B可异步调用非synchronized类型方法
11+
* 2.两个都有synchronized。线程B需等待
12+
*/
13+
public class Run4_synchronized01 {
14+
public static void main(String[] args) {
15+
MyObject object = new MyObject();
16+
ThreadA a = new ThreadA(object);
17+
a.setName("A");
18+
ThreadB b = new ThreadB(object);
19+
b.setName("B");
20+
a.start();
21+
b.start();
22+
}
23+
}
24+
25+
/*
26+
public void methodB()没加synchronized
27+
输出:
28+
begin methodA threadName=A
29+
begin methodB threadName=B
30+
A endTime:1460449260181
31+
B endTime:1460449260181
32+
33+
-------------------
34+
35+
public void methodB()加synchronized
36+
输出:
37+
begin methodA threadName=A
38+
A endTime:1460449301441
39+
begin methodB threadName=B
40+
B endTime:1460449306441
41+
42+
43+
*/
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.brianway.learning.java.multithread.synchronize.example4;
2+
3+
/**
4+
* Created by Brian on 2016/4/12.
5+
*/
6+
public class ThreadA extends Thread{
7+
private MyObject object;
8+
public ThreadA(MyObject object){
9+
super();
10+
this.object = object;
11+
}
12+
13+
@Override
14+
public void run() {
15+
super.run();
16+
object.methodA();
17+
}
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.brianway.learning.java.multithread.synchronize.example4;
2+
3+
/**
4+
* Created by Brian on 2016/4/12.
5+
*/
6+
public class ThreadB extends Thread{
7+
private MyObject object;
8+
public ThreadB(MyObject object){
9+
super();
10+
this.object = object;
11+
}
12+
13+
@Override
14+
public void run() {
15+
super.run();
16+
object.methodB();
17+
}
18+
}

0 commit comments

Comments
 (0)