21xrx.com
2024-09-17 04:20:39 Tuesday
登录
文章检索 我的文章 写文章
Java线程面试题及同步答案
2023-06-10 17:16:09 深夜i     --     --
synchronized(obj) { //需要同步的代码块 } //使用Lock对象 Lock lock = new ReentrantLock()

我最近准备面试Java线程相关的岗位,为了更好地理解Java线程的知识点,我在这里总结了一些面试题和答案。希望对大家有所帮助。

1. Java中如何创建一个线程?

答:有两种方式:继承Thread类或实现Runnable接口。

代码示例:


//继承Thread类

public class MyThread extends Thread {

  public void run()

    // 线程要执行的任务代码

  

}

//实现Runnable接口

public class MyRunnable implements Runnable {

  public void run()

    // 线程要执行的任务代码

  

}

//创建线程

new MyThread().start();

Thread thread = new Thread(new MyRunnable());

thread.start();

2. Java中线程的状态有哪些?

答:Java中线程的状态有6种:新建(NEW)、就绪(RUNNABLE)、运行(RUNNING)、阻塞(BLOCKED)、等待(WAITING)、超时等待(TIMED_WAITING)。

代码示例:


//获取线程状态(需先启动线程)

Thread.State state = thread.getState();

System.out.println(state);

3. Java中如何实现线程同步?

答:Java中可以使用synchronized关键字和Lock对象来实现线程同步。

代码示例:


//使用synchronized关键字

synchronized(obj)

  //需要同步的代码块

//使用Lock对象

Lock lock = new ReentrantLock();

lock.lock();

try

  //需要同步的代码块

finally {

  lock.unlock();

}

关键词:Java线程、面试题、线程同步

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复