Thread
稠梨梨
这个作者很懒,什么都没留下…
展开
-
Thread(线程间通讯,等待唤醒机制)
package process;/* * 线程间通讯: * 其实就是多个线程在操作同一个资源 * 但是操作的动作不同。 * * wait: * notify() * notifyAll() * * 都使用在同步中,因为要对持有监视器(锁)的线程操作 * 所以要使用在同步中,因为只有同步才具有锁 * * 为什么这些操作线程的方法要定义object类中呢? * 因为原创 2015-04-23 12:48:10 · 356 阅读 · 0 评论 -
Thread(多线程的安全问题 synchronized )
package process;/* * 代码含义:四个窗口同事买票 * 引发问题:多线程的安全问题 * * 通过分析打印出0,-1,-2等错票 * 多线程的运行出现了安全问题; * 问题的原因:当多条语句在操作同一个线程共享数据时 ,一个线程对多条语句值执行一部分,没有执行完, * 另一个线程也参与进来执行,导致共享的数据错误; * 解决办法:对多条操作共享数据的语句,只原创 2015-04-21 00:41:32 · 385 阅读 · 0 评论 -
Thread(多线程 死锁 同步中嵌套同步,并且锁不同)
package process;/* *死锁: *同步中嵌套同步,并且锁不同 */class Ticket5 implements Runnable{ public static int tick = 1000; Object obj = new Object(); boolean flag = true; int i = 0; @Override public voi原创 2015-04-21 02:52:41 · 482 阅读 · 0 评论 -
Thread(多线程的安全问题 synchronized (2))
package process;/* *如果同步函数被静态修饰后,使用的锁是什么呢? *通过验证,发现不是this,因为静态方法中不可以定义this * *静态进内存时,内存中没有本类对象,但是一定有改类对应的字节码文件对象; *类名。class;该对象的类型是class; * *静态的同步方法使用的锁是,该方法所在类的字节码文件对象。类名.class */class Tic原创 2015-04-21 02:08:24 · 361 阅读 · 0 评论 -
Thread(多线程的安全问题 synchronized (1) )
package process;/* * 需求: * 银行有一个金库。有两个储户分别存300元,每次存100;存三次; * 目的:改程序是否有安全问题,如果有,如何解决; * * 如何找问题, * 1,明确哪些代码是多线程运行代码 * 2,明确共享数据 * 3,明确多线程运行代码中哪些语句是操作共享数据; * * 同步有两种表现形式:同步函数,同步语句块; */cl原创 2015-04-21 01:32:03 · 465 阅读 · 0 评论 -
线程练习(两个线程交替运行)
package process;/** 创建两个线程,和主线程交替运行*/class Test extends Thread{private String name;Test(String name){this.name = name;}public void run(){for(int x = 0;x System.out.println(原创 2015-04-20 21:59:38 · 473 阅读 · 0 评论 -
Thread(需求:简单卖票程序 extends Thread;implements Runnable)
package process;/* * 多线程: * 需求:简单卖票程序 * 多个窗口同时卖票 * * 解决:四个窗口共享100张票 1,2 *///=========================不可以==============================================================class Ticket extends Thr原创 2015-04-20 23:38:25 · 347 阅读 · 0 评论 -
线程(创建线程)
package process;class Thread1 extends Thread{public void run(){for(int x = 0;x System.out.println("thread1 is "+x);}}}public class ThreadDemo {public static void main(Str原创 2015-04-20 21:58:15 · 280 阅读 · 0 评论 -
Thread(线程状态)
package process;/* * 线程运行状态 * * 被创建---(start())----》运行---(sleep(time))---》冻结(放弃执行资格) * * 被创建---(start())----》运行---(wait())---》冻结 * 被创建---(start())----》运行<---(notify())---冻结 * * 被创建---(原创 2015-04-20 22:52:58 · 349 阅读 · 0 评论 -
Thread(线程间通讯,代码优化)
package process;/* * 线程间通讯: * 其实就是多个线程在操作同一个资源 * 但是操作的动作不同。 * * wait: * notify() * notifyAll() * * 都使用在同步中,因为要对持有监视器(锁)的线程操作 * 所以要使用在同步中,因为只有同步才具有锁 * * 为什么这些操作线程的方法要定义object类中呢? * 因为原创 2015-04-23 14:10:49 · 343 阅读 · 0 评论 -
Thread(优先级和yield方法)
设置线程优先级----------------------setPriority();Thread.MAX_PRIORITY;Thread.MIN_PRIORITY;yield---------------------------------------释放线程执行权什么时候用多线程?某些代码要同时被执行的时候,用单独的线程进行封装。package proc原创 2015-04-23 11:13:10 · 477 阅读 · 0 评论 -
Thread(多线程,单例模式懒汉式)
package process;//饿汉式class Single{ private Single(){} private static Single s = new Single(); public static Single getInstance(){ return s; } }//懒汉式:双层判断class Single1{ private Single1(原创 2015-04-21 02:34:26 · 408 阅读 · 0 评论