android和java 线程Tread

devtools/2024/9/23 6:35:09/

1。线程的生命周期。

可以分为创建,就绪,运行,阻塞,死亡 5个状态。

1.1 创建 new :当程序new了一个线程后,线程就处于新建状态,这时候他和其他                                                         java对象一样,被java虚拟机分配了内存,但没有线程的特性。

1.2 就绪 Runnable

线程对象调用了Thread.start(方法之后,该线程处于就绪状态,Java虚拟机会为其创建方法调用栈和程序计数器,处于这个状态的线程并没有开始运行,它只是表示该线程可以运行了。从start(源码中看出、start后添加到了线程列表中,接着在native层添加到VM中,至于该线程何时开始运行,取决于IVM里线程调度器的调度(如果OS调度选中了,就会进入到运行状态)。回看一下下面start方法源码:

java层---nativeCreate(this,stack Size,daemon)

C++层---的方法:

static void Thread_nativeCreate(JNIEnv* env, jclass, jobject java_thread,
jlong stack_size, jboolean daemon) {
Thread:: CreateNativeThread(env, java_thread, stack_size, daemon == JNI_TRUE);
}

最主要的一句就是C++ 方法Create NativeThread方法中的p_thread =pthread_create(...);

说说pthread._create的参数

原型:int pthread_create((pthread_t thread, pthread_attr_t *attr, void *(start_routine )

(void *), void *arg )

  • 头文件:#include
  • 输入参数:thread线程标识符;attr:线程属性设置;start_routine:线程函数的起始地址;-arg:传递给start_routine的参数;

http://www.ppmy.cn/devtools/7121.html

相关文章

MapReduce分区机制(Hadoop)

在MapReduce中,分区(Partitioning)是将Map阶段输出的键值对根据某种规则分发到不同的Reduce任务上的过程。这个过程非常关键,因为它直接影响到了Reduce阶段的负载均衡和性能。 1. 哈希分区(Hash Partitioning&#xf…

【001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂】

001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂 文章目录 001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂创作背景通信模型ISO/OSI七层模型 和 TCP/IP四层模型网络通信数据包格式(Ethernet II&…

IDE:常见的集成开发环境

1、QT-Creator Qt Creator是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Win…

[Leetcode]用栈实现队列

用栈实现队列: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元…

数据结构与算法:常用的启发式算法

在数据结构的领域中,启发式算法是一类用于解决优化问题的算法,它们在每一步选择中都做出当前看来最好的选择,但并不保证总能找到全局最优解。这类算法广泛应用于资源分配、路径规划、存储分配等问题。以下是一些常用的启发式算法及其区别&…

ardunio中自定义的库文件

1、Arduino的扩展库都是放在 libraries目录下的。完整路径为:C:\Users\41861\AppData\Local\Arduino15\libraries 所以我们需要在这个目录下创建一个文件夹,比如上面的例子是esp32上led灯控制程序,于是我创建了 m_led文件夹(前面加…

Lua脚本使用手册(Redis篇)

Lua脚本 **简介:**Lua是一种功能强大的,高效,轻量级,可嵌入的脚本语言。它是动态类型语言,通过使用基于寄存器的虚拟机解释字节码运行,并具有增量垃圾收集的自动内存管理,是配置,脚…

HEF4046BT功能参数及避免使用的场景、应用前置放大器

制造商:NXP 产品种类:锁相环 PLL 类型:PLL 电路数量:1 电源电压 最大:15 V 电源电压 最小:3 V 最大工作温度: 85 C 安装风格:SMD/SMT 封装:SO-16 封装:Bulk 商标:NXP Semiconductors 最小工作温度:- 40 C 工作电源电压:3.3 V, 5 V, 9 V, 12 V HEF4046BT 是一种 CMO…