1.继承Thread类创建线程

  1. package com.practise.createthread;
  2.  
  3. public class AnonymousThread {
  4. public static void main(String[] args) {
  5. new Thread("线程一") {
  6. public void run() {
  7. for(int i=1;i<=20;i++) {
  8. System.out.println(Thread.currentThread().getName()+":"+i);
  9. }
  10. }
  11. }.start();
  12.  
  13. Thread.currentThread().setName("主线程");
  14. for(int i=1;i<=20;i++) {
  15. System.out.println(Thread.currentThread().getName()+":"+i);
  16. }
  17. }
  18. }

   2.实现Runnable接口创建线程

  1. package com.practise.createthread;
  2.  
  3. public class AnonymousThread {
  4. public static void main(String[] args) {
  5. new Thread(new Runnable() {
  6.  
  7. @Override
  8. public void run() {
  9. for(int i=1;i<=20;i++) {
  10. System.out.println(Thread.currentThread().getName()+":"+i);
  11. }
  12. }
  13. }, "线程二").start();
  14.  
  15. Thread.currentThread().setName("主线程");
  16. for(int i=1;i<=20;i++) {
  17. System.out.println(Thread.currentThread().getName()+":"+i);
  18. }
  19. }
  20. }

   3.使用Callable和Future创建线程

  1. package com.practise.createthread;
  2.  
  3. import java.util.concurrent.Callable;
  4. import java.util.concurrent.FutureTask;
  5.  
  6. public class AnonymousThread {
  7. public static void main(String[] args) {
  8. FutureTask<Integer> task=new FutureTask<Integer>(new Callable<Integer>() {
  9. @Override
  10. public Integer call() {
  11. Integer total = 0;
  12. try {
  13. for (int i = 1; i <= 50; i++) {
  14. total += i;
  15. }
  16. return total;
  17. } catch (Exception ex) {
  18. ex.printStackTrace();
  19. }
  20. return null;
  21. }
  22. });
  23.  
  24. new Thread(task, "有返回值的线程").start();
  25. try {
  26. System.out.println(task.get());
  27. } catch (Exception ex) {
  28. ex.printStackTrace();
  29. }
  30.  
  31. Thread.currentThread().setName("主线程");
  32. for (int i = 1; i <= 20; i++) {
  33. System.out.println(Thread.currentThread().getName() + ":" + i);
  34. }
  35. }
  36. }

Java多线程-----匿名内部类创建线程的更多相关文章

  1. java多线程之创建线程的4种方式及Future

    Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例.Java可以用四种方式来创建线程: 继承Thread创建线程 实现Runnable接口创建线程 实现callab ...

  2. Java多线程——之一创建线程的四种方法

    1.实现Runnable接口,重载run(),无返回值 package thread; public class ThreadRunnable implements Runnable { public ...

  3. Java多线程之创建线程的三种方式比较

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6560057.html  一:继承Thread类创建线程 1:继承Thread类定义线程子类: 2:重写run( ...

  4. java 多线程 day01 创建线程

    线程,即代码的执行路径java 面向对象编程.所以线程在java中也是用对象来表示的,创建线程对象的类就是 Thread如下代码即开启一个新的线程,通过线程对象的start方法,即可启动线程 Thre ...

  5. JAVA·多线程:创建线程的两种方式

    1.–扩展java.lang.Thread类 package multiThread; public class Thread02extThread { public static void main ...

  6. 【Java】学习路径46-两种创建多线程的方法、以及在匿名内部类创建线程

    两种方法: 1.创建一个继承自Thread的线程类,然后再main(不限)中构造这个线程类对象.方法在之前讲过. 2.创建一个使用Runnable接口的线程类,然后在main(不限)中构造这个Runn ...

  7. -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中

     本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁  sleep()和wait()方法的区别 为什么wait( ...

  8. Java多线程系列--“JUC线程池”06之 Callable和Future

    概要 本章介绍线程池中的Callable和Future.Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.co ...

  9. Java多线程系列--“JUC线程池”02之 线程池原理(一)

    概要 在上一章"Java多线程系列--“JUC线程池”01之 线程池架构"中,我们了解了线程池的架构.线程池的实现类是ThreadPoolExecutor类.本章,我们通过分析Th ...

随机推荐

  1. set的经典应用

    set的经典应用 刚开始用map标记一个测试点超时了 ┭┮﹏┭┮: 用set的find 减少了循环提高了效率 #include <bits/stdc++.h>using namespace ...

  2. Mybatis返回值类型是hashmap,输入键值对为空时,key 丢失的问题

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...

  3. 唯美MACD

    上证30 分钟产生背离,60 分钟高位,但并没有背离,若调整,也是30F 级别的.算是上涨途中的歇脚. 1.股票如果非要从MACD 上去判断怎么拿,那么一句话:要大跌,一般都需要背离.所以,没有背离的 ...

  4. 【剑指offer】字符串的排列

    一.题目: 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 二.思路: ...

  5. SQL Anywhere .NET

    SQL Anywhere .NET 支持 1.ADO.NET 是 Microsoft 的 ODBC.OLE DB 和 ADO 系列中最新的数据访问 API.它是 Microsoft .NET Fram ...

  6. C 函数声明及求最大值

    #include <stdio.h> int main() { int a,b,c,max(int x,int y,int z); scanf("%d,%d,%d",& ...

  7. spark.yarn.jar和spark.yarn.archive的使用

    启动Spark任务时,在没有配置spark.yarn.archive或者spark.yarn.jars时, 会看到不停地上传jar非常耗时:使用spark.yarn.archive可以大大地减少任务的 ...

  8. Spark快速获得CrossValidator的最佳模型参数

    Spark提供了便利的Pipeline模型,可以轻松的创建自己的学习模型. 但是大部分模型都是需要提供参数的,如果不提供就是默认参数,那么怎么选择参数就是一个比较常见的问题.Spark提供在org.a ...

  9. 【Tools】-NO.10.Tools.2.IDEA.1.001-【IDEA Configuration】-

    1.0.0 Summary Tittle:[Tools]-NO.10.Tools.2.IDEA.1.001-[IDEA Configuration]- Style:Tools Series:IDEA ...

  10. 截取字符串后几位用 length