java的线程的三种方式

java的线程的三种方式

编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Thread,Runnable,Callable。

Runnable和Callable的区别

  1. 方法定义

    • Callable规定的方法是call()
    • Runnable规定的方法是run()
  2. 返回值

    • Callable的任务执行后可返回值,而Runnable的任务是不能返回值得。
  3. 异常处理

    • call方法可以抛出异常,run方法不可以。
  4. Future对象

    • 运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。

1. 通过实现Runnable接口来创建Thread线程

步骤

  1. 创建实现Runnable接口的类:
    class SomeRunnable implements Runnable {
        public void run() {
            //do something here
        }
    }
    
  2. 创建一个类对象:
    Runnable oneRunnable = new SomeRunnable();
    
  3. 由Runnable创建一个Thread对象:
    Thread oneThread = new Thread(oneRunnable);
    
  4. 启动线程:
    oneThread.start();
    

2. 通过实现Callable接口来创建Thread线程

步骤

  1. 创建实现Callable接口的类:
    public interface Callable<V> {
        V call() throws Exception;
    }
    
  2. 创建一个类对象:
    Callable<Integer> oneCallable = new SomeCallable<Integer>();
    
  3. 由Callable创建一个FutureTask对象:
    FutureTask<Integer> oneTask = new FutureTask<Integer>(oneCallable);
    
  4. 由FutureTask创建一个Thread对象:
    Thread oneThread = new Thread(oneTask);
    
  5. 启动线程:
    oneThread.start();
    

3. 通过继承Thread类来创建一个线程

步骤

  1. 定义一个继承Thread类的子类:
    class SomeThread extends Thread {
        public void run() {
            //do something here
        }
    }
    
  2. 构造子类的一个对象:
    SomeThread oneThread = new SomeThread();
    
  3. 启动线程:
    oneThread.start();
    

Read more

印度统治阶级锁死底层人的5大阳谋

印度统治阶级锁死底层人的5大阳谋

基于社会学和心理学视角: 1. 情感道德: 统治阶级通过塑造道德规范和情感价值观,引导底层人群的行为。例如,宣扬“勤劳致富”“忍耐美德”等观念,让底层人接受现状并自我约束。这种道德框架往往掩盖结构性不平等,使人们将个人困境归咎于自身而非系统。 2. 欲望控制: 通过消费主义和媒体宣传,统治阶级刺激底层人的物质与社会欲望(如名牌、地位),但同时设置经济壁垒,使这些欲望难以实现。底层人被困在追求“更好生活”的循环中,精力被分散,无法聚焦于挑战权力结构。 3. 情绪煽动: 利用恐惧、愤怒或民族主义等情绪,统治阶级可以通过媒体或公共事件转移底层人对社会问题的注意力。例如,制造外部敌人或内部对立(如阶层、种族矛盾),让底层人内耗而非联合反抗。 4. 暴利诱惑: 通过展示少数“成功案例”或快速致富的机会(如赌博、投机),诱导底层人追逐短期暴利。这种机制不仅让底层人陷入经济风险,还强化了对现有经济体系的依赖,削弱长期变革的可能性。 5. 权力震撼: 通过展示统治阶级的权力(

By Ne0inhk