当前位置: 首页 > news >正文

新增域名网站建设方案软文推荐

新增域名网站建设方案,软文推荐,网站悬浮窗广告,广西住建厅考试培训中心创建三种线程的方式对比 使用实现Runnable、Callable接口的方式创建多线程。 优势 Java的设计是单继承的设计#xff0c;如果使用继承Thread的方式实现多线程#xff0c;则不能继承其他的类#xff0c;而如果使用实现Runnable接口或Callable接口的方式实现多线程#xf…创建三种线程的方式对比 使用实现Runnable、Callable接口的方式创建多线程。 优势 Java的设计是单继承的设计如果使用继承Thread的方式实现多线程则不能继承其他的类而如果使用实现Runnable接口或Callable接口的方式实现多线程还可以继承其他类。 采用接口能够更好的实现数据共享。线程的启动需要Thread类的start方法如果采用继承的方式每次新建一个线程时每个新建线程的数据都会单独的存在线程内存中这样每个线程会单独的操作自己线程的数据不能更好的实现线程之间的数据共享。 劣势 编程稍微复杂如果要访问当前线程则必须使用Thread.currentThread()方法。 使用继承Thread的方式实现多线程测试案例 public class ThreadTest extends Thread{public int count 10;Overridepublic void run() {count--;System.out.println(this.getName()的count:count);}public static void main(String[] args) throws InterruptedException {Thread thread1 new ThreadTest();//thread1有自己的数据——countThread thread2 new ThreadTest();//thread2有自己的数据——countthread1.start();Thread.sleep(100);thread2.start();} }运行结果 Thread-0的count:9 Thread-1的count:9使用实现Runnable、Callable接口的方式创建多线程测试案例 public class RunnableTest implements Runnable{public int count 10;Overridepublic void run() {count--;System.out.println(Thread.currentThread().getName()的count:count);}public static void main(String[] args) throws InterruptedException {RunnableTest runnableTest new RunnableTest();//threa1和threa2共享同一个数据——countThread thread1 new Thread(runnableTest);Thread thread2 new Thread(runnableTest);thread1.start();Thread.sleep(100);thread2.start();} }运行结果 Thread-0的count:9 Thread-1的count:8使用继承Thread类的方式创建多线程 优势 编写简单如果需要访问当前线程则无需使用Thread.currentThread()方法直接使用this即可获得当前线程。 劣势 线程类已经继承了Thread类所以不能再继承其他的类。 Runnable和Callable的区别 与Runnable相比Callable功能更强大些 Callable规定重写的方法是call()Runnable规定重写的方法是run()。Callable的任务执行后可返回值而Runnable的任务是不能返回值的。call方法可以抛出异常run方法不可以。Callable是支持泛型的运行Callable任务可以拿到一个Future对象表示异步计算的结果。它提供了检查计算是否完成的方法以等待计算的完成并检索计算的结果。通过Future对象可以了解任务执行情况可取消任务的执行还可获取执行结果。 Runnable接口源码 FunctionalInterface public interface Runnable {public abstract void run(); }Callable接口源码 FunctionalInterface public interface CallableV {/*** Computes a result, or throws an exception if unable to do so.** return computed result //可以有返回值* throws Exception if unable to compute a result //可以抛出异常*/V call() throws Exception; } Callable接口使用案例 /* 创建线程的方式三实现Callable接口。-----JDK1.5新增*/ //1.创建一个实现Callable的实现类 class NumThread implements Callable{//2.实现call方法将此线程需要执行的操作声明在call()中Overridepublic Object call() throws Exception{int sum0;for (int i1;i100;i){sumi;}return sum;} } public class ThreadNew {public static void main(String[] args) throws ExecutionException, InterruptedException {//3.创建Callable接口实现类的对象NumThread numThreadnew NumThread();//4.将此Callable接口实现类的对象作为传递到FutureTask构造中创建FutureTask的对象FutureTask futureTasknew FutureTask(numThread);//5.将FutureTask的对象组排位哦参数传递到thread类的构造器中创建Thread对象并调用start()new Thread(futureTask).start();//6.获取Callable中call方法的返回值//get()返回值即为FutureTask构造器参数Callable实现类重写的call()的返回值Object sum futureTask.get();System.out.println(总和为sum);} }Threa类基本属性和方法最基本的 基本属性 /** * 线程的优先级 * 线程分为10个优先级分别用整数1——10表示其中1为最低优先级10为最高优先级5为默认优先级 * 在操作系统中线程可以划分优先级线程优先级越高获得 CPU 时间片的概率就越大但线程优先级的高低与线程的执行顺序并没有必然联系优先 * 级低的线程也有可能比优先级高的线程先执行。 */// 线程可以具有的最高优先级 static int MAX_PRIORITY // 线程可以具有的最低优先级 static int MIN_PRIORITY // 分配给线程的默认优先级(默认为5) static int NORM_PRIORITY 基本方法 //返回对当前正在执行的线程对象的引用static Thread currentThread() //返回该线程的名称 String getName() //返回线程的优先级 int getPriority() //如果该线程是使用独立的 Runnable 运行对象构造的则调用该 Runnable 对象的 run 方法否则该方法不执行任何操作并返回。 void run() //设置线程名称 void setName(String name) //设置线程的优先级。 void setPriority(int newPriority) //使该线程开始执行,Java 虚拟机调用该线程的 run 方法。 void start()
http://www.w-s-a.com/news/821527/

相关文章:

  • 建网站做哪方面公司百度官网优化
  • 山西网站seo网站采集信息怎么做
  • 同江佳木斯网站建设seo学徒培训
  • 淘宝不能发布网站源码做商品怀化网站制作建设
  • 买空间哪个网站好做我的世界背景图的网站
  • 南京哪里做网站wordpress 增加子目录
  • 刚做的网站搜全名查不到网站很难被百度收录
  • 网站建设与管理期末做网站买空间用共享ip
  • 网络合同怎么签有效南京seo公司哪家
  • 厦门建设网官方网站上海网络网站建
  • 网站制作西安郑州网站建设动态
  • 外贸网站免费推广温州做网站技术员
  • 武冈 网站建设做网站能收回吗
  • 网站做前端把网站扒下来以后怎么做
  • 网站模板素材下载手机做任务佣金的网站
  • 机关网站建设考核测评总结做网站sqlserver排序
  • 凉山州建设厅官方网站html5下载教程
  • 内网网站建设方面政策id97网站怎么做的
  • 福州企业建站系统七米网站建设
  • 长春seo建站北京做机床的公司网站
  • 网站维护具体做啥如何开发wap网站
  • 公司网站设计费计入什么科目潍坊公司网站制作
  • 拖拽式网站开发模具钢东莞网站建设
  • 彩票娱乐网站建设模块化网站开发
  • 孝感网站设计用自己的名字设计头像
  • 高明网站建设哪家好深圳vi设计公司全力设计
  • 工程技术cpu游戏优化加速软件
  • 一起做网店网站入驻收费wordpress 自定义评论样式
  • 深圳高端网站建设公司排名app软件开发sh365
  • 泰州网站整站优化惠州做网站多少钱