线程创建的一种特殊用法

看别人的代码遇到Thread t1 = new Thread(){};,new一個线程,后面用大括号,里面还可以写方法,一般javase中创建线程只有两种方法呀,这种用法从来没见过呀~~~~经过查找资料终于理解了。。。。

Javase中创建线程的第一种方法

javase中创建线程的第二种方法

对Thread t1 = new Thread(){};的分析

??这是个匿名内部类,继承了Thread类,一般我们定义的类都是有名字的如 public class A extends Thread{},这个类的名字是A,它继承了Thread类,在{}中可以写一些方法,包括自定义的也包括重写父类。而 new Thread(){};这样的写法意思是有一个类,继承了Thread,因为这个类只用一次,因此不想给它起名字,所以就用这种匿名类的写法。当此匿名类也需要定义一些新的方法,或者重写父类的方法,就要在后面跟的大括号中完成。一般继承Thread类都需要改写的是run()方法。

??这里其实本质上用的是第一种方法。

??匿名内部类的优点是使代码变得简洁悦目。

一定要重视每一个遇到的小问题,都是成长的机会!!!

时间: 2024-10-30 11:31:30

线程创建的一种特殊用法的相关文章

爪哇国新游记之十二----线程创建的两种形式

public class Thread1 extends Thread{ public void run(){ int i=0; while(i<10){ i++; System.out.println(i); } } public static void main(String[] args){ Thread1 t=new Thread1(); t.start(); } } public class Thread2 implements Runnable{ @Override public v

java_线程创建的两种方法

线程创建的方法有两种: 一 继承Thread类: public class ThreadTest { public static void main(String[] args) { //4)在main方法中创建线程对象 Thread01 thread01 = new Thread01(); //5)调用Thread的start方法启动线程并执行线程 thread01.start(); } } //1)创建一个类继承Thread类 class Thread01 extends Thread{ /

线程创建的第二种方法

第一种方法是继承并且重写run方法(不推荐使用) 第二种就是有爹的情况,用实现接口的形式拓展功能--实现Runnable接口 Runnable中只有run()方法 今天复习同步线程代码时候卡在一个问题上: class SynThread implements Runnable { run() { } } class Main { public static void main(string [] args) { SynThread syn=new SynThread(); Thread a=ne

c++11线程创建的三种方法

一.用一个初始函数创建一个线程 直接看代码:注意c++在运行一个可执行程序的时候(创建了一个进程),会自动的创建一个主线程,这个主线程和进程同生共死,主线程结束,进程也就结束了. 1 #include "pch.h" 2 #include <iostream> 3 #include<thread> 4 void print1() 5 { 6 cout << "print1_1线程执行" << endl; 7 cout

python 线程(创建2种方式,守护进程,锁,死锁,递归锁,GIL锁,其他方式)

###############总结############ 线程创建的2种方式(重点) 进程:资源分配单位    线程:cpu执行单位(实体) 线程的创建和销毁的开销特别小 线程之间资源共享,是同一个进程中的资源共享,会涉及到安全问题,所以需要加锁解决 锁:牺牲了效率,保证了数据安全(重点) 死锁现象:出现在嵌套的时候,双方互相抢对方已经拿到的锁,导致双方互相等待(重点) 递归锁: 解决了死锁现象(重点) rlock 首先本身就是个互斥锁,维护了一个计数器,每次acquire+1,release

【搞懂Java多线程之一】多线程相关概念,线程生命周期以及线程创建方法

楼主决定要好好地把Java的多线程给看一下,所以特地来写下博客,内容大部分都是摘抄自网上看到的资料或者书籍,能给出链接的我会给出链接.嗯,希望大家跟楼主一起抱团,加油加油(^ω^)也欢迎关注楼楼的个人博客主页www.anycodex.com. 1.多线程相关概念 程序:为了完成特定任务,用某种语言编写的一组指令集合. 进程:运行中的程序,系统跳读和资源分配的一个独立单位,操作系统会为每一个进程分配一段内存空间. 线程:比进程更小的执行单位,每一个进程可能有多个线程,线程需要放到一个进程中才能执行

锁和多线程:线程创建3种方式(一)

线程 锁Synchronized 1.线程创建 2.线程安全 搞明白 线程 锁和多线程系列 1.线程创建 线程创建常见的三种方式: 继承Thread类 实现Runnable接口 实现Callable接口 第三种方式有异步调用效果,类似js中的ajax可以接收返回值,其余两种不能. package thread; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import

iOS开发——多线程OC篇&amp;(二)线程创建

创建线程 一.创建和启动线程简单说明 一个NSThread对象就代表一条线程 创建.启动线程 (1) NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; [thread start]; // 线程一启动,就会在线程thread中执行self的run方法 主线程相关用法 + (NSThread *)mainThread; // 获得主线程 - (BOOL)isMa

C#线程同步的几种方法

我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态:或者你的程序需要访问一些外部资源如数据库或网络文件等.这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题.如果这个问题处理不好,我们就会得到一些非预期的结果. 在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就简单的做一下归纳. 一.volatile关键字 volatile是最简单的一种同步方法,当然简单是要付出代价的