thread_Synchronized(同步与互斥)
来源:互联网 发布:淘宝网肚皮舞服装新款 编辑:程序博客网 时间:2024/06/08 13:16
package com.gzhs.zsd.thread;
/*
* 多线程同步互斥
* @author 谢泽鹏
* @version 1.0
*/
public class Traditional_Synchronized {
public static void main(String[] args) {
//测试普通线程1 //new MySynchronizedThread().More_Thread1(); //多线程同步1 //new MySynchronizedThread().More_Thread2(); //多线程同步2 //new MySynchronizedThread().More_Thread3();
}
/*
*
* @方法名称:More_Thread1
* @描述:普通模式 出现状况: 线程xxx调度outprint。 未完成此调度时,程序执行新的线程。
* @作者: 谢泽鹏
* @创建日期: 2012-5-8
* @参数:
*/
public void More_Thread1()
{
final MyPrint1 myPrint = new MyPrint1();
//创建线程1
new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
myPrint.outprint(“My Name is xiezepeng!”);
} catch (InterruptedException e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
}
}
}).start();
//创建线程2new Thread(new Runnable() { @Override public void run() { while(true){ try { Thread.sleep(1000); myPrint.outprint("My Name is suenpeng!"); } catch (InterruptedException e) { e.printStackTrace(); System.err.println(e.getMessage()); } } } }).start();
}
//内部类
class MyPrint1{
public void outprint(String name) { for(int i = 0; i < name.length(); i++){ System.out.print(name.charAt(i)); } System.out.println(); }
}
/*
*
* @方法名称:More_Thread2
* @描述: 多线程同步方式1
* @作者: 谢泽鹏
* @创建日期: 2012-5-8
* @参数:
*/
public void More_Thread2()
{
final MyPrint2 myPrint = new MyPrint2();
//创建线程1
new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
myPrint.outprint(“My Name is xiezepeng!”);
} catch (InterruptedException e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
}
}
}).start();
//创建线程2new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
myPrint.outprint(“My Name is suenpeng!”);
} catch (InterruptedException e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
}
}
}).start();
}
//内部类
class MyPrint2{
public void outprint(String name) { //同步 (参数表示同一个对象) //加上synchronized关键词, 参数表示同一个对象, //此时在多线程中, 即表示该线程完毕后,在执行新的线程。 synchronized (this) { for(int i = 0; i < name.length(); i++){ System.out.print(name.charAt(i)); } System.out.println(); } }
}
/*
*
* @方法名称:More_Thread3
* @描述: 多线程同步方式2
* @作者: 谢泽鹏
* @创建日期: 2012-5-8
* @参数:
*/
public void More_Thread3()
{
final MyPrint3 myPrint = new MyPrint3();
//创建线程1
new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
myPrint.outprint(“My Name is xiezepeng!”);
} catch (InterruptedException e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
}
}
}).start();
//创建线程2new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
myPrint.outprint(“My Name is suenpeng!”);
} catch (InterruptedException e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
}
}
}).start();
}
//内部类
class MyPrint3{
//该方法加上同步关键词修饰,即标识该同步与当前对象, 即this对象 //此时在多线程中, 即表示该线程完毕后,在执行新的线程。 public synchronized void outprint(String name) {for(int i = 0; i < name.length(); i++){ System.out.print(name.charAt(i));}System.out.println(); }
}
}
- thread_Synchronized(同步与互斥)
- 互斥与同步
- 互斥与同步
- 互斥与同步
- 互斥与同步
- 互斥与同步
- 互斥与同步
- 同步与互斥
- 同步与互斥
- 同步与互斥
- 互斥与同步
- 互斥与同步
- 同步与互斥
- 进程同步与互斥
- 进程同步与互斥
- 多线程同步与互斥
- 同步与互斥概念
- 多线程同步与互斥
- 大小端字节序
- 带锁的线程安全的LRULinkedHashMap简单实现
- ios tableview 自动计算cell高度
- Caused by: java.lang.ClassNotFoundException[android的终极解决错误]
- oracle命令sqlplus/nolog无法进入
- thread_Synchronized(同步与互斥)
- CGridCtrl的使用方法
- poj 1753
- ajax实例
- C++中嵌入python程序——命令行模式
- PAT-B 1024. 科学计数法
- Json和Xml数据解析
- python简单连接数据库
- ROS(indigo)swarm_robot 群机器人示例Gazebo