-
thread.yield()使线程让出处理器查看全部
-
JMM可见性查看全部
-
volatile查看全部
-
lockObj.notifyAll() 唤醒所有在lockObj对象上等待的线程查看全部
-
锁机制查看全部
-
锁机制查看全部
-
争用条件查看全部
-
线程 有时互斥有时同步查看全部
-
隋唐演义大戏舞台 public class Stage extends Thread { public void run(){ ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable(); ArmyRunnable armyTaskOfRevolt = new ArmyRunnable(); //使用Runable接口创建线程 Thread armyOfSuiDynasty = new Thread(armyTaskOfSuiDynasty,"隋军"); Thread armyOfRevolt = new Thread(armyTaskOfRevolt,"农民起义军"); //启动线程让军队作战 armyOfSuiDynasty.start(); armyOfRevolt.start(); //舞台线程休眠,大家装修观看军队厮杀 try { Thread.sleep(50); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } armyTaskOfSuiDynasty.keepRunning=false; armyTaskOfRevolt.keepRunning=false; try { armyOfRevolt.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { new Stage().start(); } }查看全部
-
军队线程 public class AmyRunnable implements Runnable { //volatile保证了线程可以正确的读取其他线程写入的值 //可见性 ref JVM happens-before原则 volatile boolean keepRunning = true; @Override public void run() { while(keepRunning){ //发动5连击 for(int i=0;i<5;i++){ System.out.println(Thread.currentThread().getName()+"进攻对方["+i+"]"); } } System.out.println(Thread.currentThread().getName()+"结束了战斗"); //让出了处理器时间,下次谁进攻不一定呢! Thread.yield(); } }查看全部
-
线程创建 Thread() Thread(String name) Thread(Runnable target) Thread(Ruannable target,String name) 线程的方法 void start() 启动线程 static void sleep(long miles)线程休眠 sleep(long milis,int nanos) void join()使其他线程等待当前线程终止 join(long milis) join(long milis,int nanos) static void yield() 当前运行线程释放处理器资源 获取线程引用 static Thread currentThread() 返回当前运行的线程引用查看全部
-
进程: 程序(任务)的执行过程——动态性。(比如启动qq等) 持有资源(共享内存,共享文件)和线程——载体。 线程:(比如qq中文字聊天为一个线程,收发文件为一个线程) 系统中最小的执行单元。 同一个进程中可以有多个线程。 线程共享进程的资源。查看全部
-
简化模型查看全部
-
正确的停止java线程的方法:不要使用自带的stop()方法。查看全部
-
Thread.currentThread() 返回当前的线程,使用当前的线程 去操作一系列的方法查看全部
举报
0/150
提交
取消