加入收藏 收藏网站 设为首页 设为首页
招生考试网
学历类| 阳光高考 研 究 生 自学考试 成人高考 专 升 本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 书画等级 美国高考 驾 驶 员 书法等级 少儿英语 报 检 员 单 证 员 出国留学
 招生考试网 - 计算机等级考试 - 考试辅导 - 正文

 
Java线程的概念与原理
来源:fjzsksw.com 2010-2-2 编辑:zhoupanyu 【字体:小 大】
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。“同时”执行是人的感觉,在线程之间实际上轮换执行。

 

  class MyThread extends Thread

  {

  public void run()

  {

  while(true)

  {

  System.out.println(getName());

  yield(); //允许当前线程停止,转去执行其他线程,静态方法

  //mt进程执行时,切换到main进程,main进程执行一段时间后,

  //切换进程到mt,mt执行完获取名字后,返回到main进程

  }

  }

  }

  //一个长时间处于等待状态的线程也有可能被线程调度器调度,从而运行,

  //打破高优先级线程始终获有运行时间的状态

  ——————————————————————————————————————

  ——————————MultiThread.java———————————————————————

  class MultiThread

  {

  public static void main(String[] args)

  {

  MyThread mt=new MyThread();

  //new Thread(mt).start();   //创建多个同样的线程访问同一个变量index,若MyThread采用继承Thread方式,则无法共享同一个变量

  //new Thread(mt).start();

  //new Thread(mt).start();

  //new Thread(mt).start();

  mt.getThread().start(); //也可以采用内部类的方式共享访问同一个变量

  mt.getThread().start();

  mt.getThread().start();

  mt.getThread().start();

  //mt.setDaemon(true);//设定为后台线程,main进程结束时,后台进程也跟着结束

  //mt.setPriority(Thread.MAX_PRIORITY); //设定线程优先级,MAX_PRIORITY为10,MIN_PRIORITY为1,NORM_PRIORITY为5。

  //设定为最高优先级后,程序运行时,mt线程一直运行,强制终止时,main线程才运行

  //设定为最高优先级的线程,无论有无yield();,线程总一直运行,直到强制终止时,main和mt线程交替运行

  //mt.start();

  int index=0;

  while(true) //显示结果与教程不同

  {

  // if(index++==100)

  //   break;

  System.out.println("main:"+Thread.currentThread().getName()); //获取线程名字

  }

  }

  }

  class MyThread //implements Runnable //extends Thread //使用外部类的方式

  //使用内部类完成使用Runnable接口才能完成的两个功能 a,创建多个线程.b,访问同一个变量

  {

  int index=0;

  private class InnerThread extends Thread //不想让外部访问其实现方法,加上private

  {

  public void run()

  {

  while(true)

  {

  System.out.println(Thread.currentThread().getName()+":"+index++);

  }

  }

  }

  Thread getThread()

  {

  return new InnerThread();

  }

  /*

 



 
网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
最新文章
热门文章

报名考试
全国 | 黑龙江 | 吉林 | 辽宁 | 内蒙古
青海 | 宁夏 | 甘肃 | 新疆 | 陕西
西藏 | 北京 | 天津 | 河北 | 山东
江苏 | 安徽 | 河南 | 上海 | 浙江
福建 | 广东 | 山西 | 湖南 | 湖北
江西 | 广西 | 海南 | 云南 | 贵州
四川 | 重庆
分省高校计算机考试
黑龙江 | 吉林 | 辽宁 | 内蒙古 | 河北
北京 | 天津 | 新疆 | 甘肃 | 宁夏
青海 | 陕西 | 山西 | 河南 | 山东
江苏 | 安徽 | 浙江 | 福建 | 广东
海南 | 广西 | 江西 | 湖北 | 湖南
四川 | 上海 | 重庆 | 贵州 | 云南
西藏
成绩查询
报考指南
试题答案
模拟试题
考试辅导
计算机一级 | 计算机二级 | 计算机三级 | 计算机四级
经验交流
高校计算机