1、首先创建一个打印机对象

package cn.b.happy;

public class Printer {
Object o =new Object();
public void print(){
synchronized(o){
System.out.print("微");
System.out.print("冷");
System.out.print("的");
System.out.print("雨");
System.out.println();
}
} public void print1(){
synchronized(o){
System.out.print("好");
System.out.print("人");
System.out.println();
} } }

  

2、创建两个线程分别为thread1 和 thread2 分别继承thread 和 是实现 runnable接口 包含 打印机 printer 对象

package cn.b.happy;

public class MyThread1 extends Thread{

    public Printer print;
@Override
public void run() {
for (int i = 1; i <=500; i++) {
print.print();
}
}
}
package cn.b.happy;

public class MyThread2 implements Runnable {
public Printer print;
@Override
public void run() {
for (int i = 1; i <=500; i++) {
print.print1();
} } }

3、测试类  实现runnable 接口的 线程 不能调用start()方法,所以创建一个Thread线程对象里边传实现runnable接口的类,从而实现开启线程

package cn.b.happy;

public class Test {
public static void main(String[] args) {
Printer p =new Printer();
MyThread1 t1 =new MyThread1();
t1.print=p;
t1.start(); MyThread2 t2 =new MyThread2();
t2.print=p;
Thread t=new Thread(t2);
t.start();
} }

Thread 同步线程(打印机同步)的更多相关文章

  1. 线程的同步之Synchronized的使用

       一.介绍        线程的同步:一般的并发指的就是多个线程访问同一份资源.多个线程同时访问(修改)同一份资源的话,就会有可能造成资源数据有误. 如果多个线程访问多个不同资源,就不会造成线程同 ...

  2. 线程同步&线程池

    线程同步&线程池 线程同步 线程不同步会出现的问题: 当多个线程操作同一资源时,会出现重复操作和和操作不存在的资源的问题,为了规避这一问题就需要线程的同步操作来实现资源的共同使用. 线程同步: ...

  3. java thread 线程锁同步,锁,通信

    12.线程同步 当多个线程访问同一个数据时,非常容易出现线程安全问题.这时候就需要用线程同步 Case:银行取钱问题,有以下步骤: A.用户输入账户.密码,系统判断是否登录成功 B.用户输入取款金额 ...

  4. java之线程(线程的创建方式、java中的Thread类、线程的同步、线程的生命周期、线程之间的通信)

    CPU:10核 主频100MHz 1核  主频    3GHz 那么哪一个CPU比较好呢? CPU核不是越多越好吗?并不一定.主频用于衡量GPU处理速度的快慢,举个例子10头牛运送货物快还是1架飞机运 ...

  5. 第十七节:Runnable创建线程,Thread创建线程,唤醒线程和计数器多线程,线程同步与等待

    Runnable创建线程 public class RunnableDemo implements Runnable{ @Override public void run(){ int i = 1; ...

  6. 线程间同步之 semaphore(信号量)

    原文地址:http://www.cnblogs.com/yuqilin/archive/2011/10/16/2214429.html semaphore 可用于进程间同步也可用于同一个进程间的线程同 ...

  7. Java线程:线程的同步-同步方法

    Java线程:线程的同步-同步方法   线程的同步是保证多线程安全访问竞争资源的一种手段. 线程的同步是Java多线程编程的难点,往往开发者搞不清楚什么是竞争资源.什么时候需要考虑同步,怎么同步等等问 ...

  8. Java线程:线程的同步与锁

    一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 例如:两个线程ThreadA.ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据. public ...

  9. java 线程数据同步

    java 线程数据同步 由买票实例 //java线程实例 //线程数据同步 //卖票问题 //避免重复卖票 //线程 class xc1 implements Runnable{ //定义为静态,可以 ...

  10. Java多线程-线程的同步与锁

    一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏.例如:两个线程ThreadA.ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据. package ...

随机推荐

  1. Box2D自定义重力

    需要给刚体添加一个自定义的属性:m_customGravity,这样就可以动态的修改每一个刚体自定义的重力,查找box2d源码大约在5486行,加上红色的一句代码 b2Island.prototype ...

  2. Web自动化测试 Selenium 2/3

    TesNG和Selenium集成使用 TestNG 是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔 离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整 个系统,例如运用 ...

  3. Xcode编译相关

    Xcode多工程联编及工程依赖 iOS release,debug版设置不同的AppIcon Xcode创建子工程以及工程依赖 Xcode 依赖管理带来的静态库动态库思考

  4. Android 手机卫士--构建服务端json、请求网络数据

    本文地址:http://www.cnblogs.com/wuyudong/p/5900384.html,转载请注明源地址. 数据的传递 客户端:发送http请求 http://www.oxx.com/ ...

  5. OC NSDictionary

    OC NSDictionary NSDictionary初始化 NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@ ...

  6. Xcode安装插件,错误选择了Skip Bundles,重新出现Load Bundles方法

    Xcode安装插件经常会遇到这样的问题,出现提示性选择,还是英文提示,所以没仔细看就习惯性的选择了右侧的按钮 点击了Skip Bundle,结果悲剧的发现,发现插件完全失效了,以后不管怎么打开Xcod ...

  7. 开发笔记之NSTable 排序

    (1)第一步设置一下button IBOutlet NSButton * nameOrderBT; IBOutlet NSButton * sizeOrderBT; (2)切换设置切换相遇函数 -(I ...

  8. net2.0对于递归变量的处理方式不同引发的递归问题

    同样的代码,用NET2.0执行产生的效果与其它框架使用的不同,导致报错. 认真查找原因后发现该程序的编写人员隐式的使用了一个公共变量,使之在递归过程中不断的被改写,使得1次递归后就破坏了原来的循环体, ...

  9. 学习 jsonp

    1.起因 js脚本做ajax异步调用的时候,直接请求普通文件存在跨域无权限访问的问题,不管你是静态页面.动态网页.web服务,只要是跨域请求,都无法成功: 如果上句话没明白,我们直接看例子.有两个一模 ...

  10. MicroStation VBA 可视化界面

    第十章 可视界面 Private Sub UserForm_Initialize() Dim ViewCen As Point3d Dim MyView As View For Each MyView ...