线程创建
继承Thread类
package com.thread.demo01;
//创建线程方式一:继承Thread类,重写run()方法,调用start方法开启线程
//总结:注意,线程开启不一定立即执行,由CPU调度执行
public class TestThread1 extends Thread{
实现Runnable接口
package com.thread.demo01;
//创建线程方式二:实现runnable接口,重写run()方法,执行线程需要丢入runnable接口的实现类,调用start方法
public class TestThread2 implements Runnable{
-
推荐使用Runnable接口,避免单继承局限性,灵活方便,方便同一个对象被多个线程使用。
初识并发问题
package com.thread.demo01;
//多个线程同时操作同一个对象
//买火车票的例子
public class TestThread4 implements Runnable{
//票数
private int ticketNums = 10;
案例:龟兔赛跑
package com.thread.demo01;
//模拟龟兔赛跑
public class Race implements Runnable{
private static String winner;//胜利者
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现