⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread.c

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 C
字号:
/* * @(#)Thread.c	1.88 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER   *    * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License version   * 2 only, as published by the Free Software Foundation.    *    * This program is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * General Public License version 2 for more details (a copy is   * included at /legal/license.txt).    *    * You should have received a copy of the GNU General Public License   * version 2 along with this work; if not, write to the Free Software   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA    *    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa   * Clara, CA 95054 or visit www.sun.com if you need additional   * information or have any questions.  * *//*- *      Stuff for dealing with threads. *      originally in threadruntime.c, Sun Sep 22 12:09:39 1991 */#include "jni.h"#include "jvm.h"#include "java_lang_Thread.h"#ifdef CVM_JAVALANGTHREAD_REGISTER_NATIVES#define THD "Ljava/lang/Thread;"#define OBJ "Ljava/lang/Object;"static const JNINativeMethod methods[] = {#ifdef JDK12    {"start",            "()V",        (void *)&JVM_StartThread},    {"stop0",            "(" OBJ ")V", (void *)&JVM_StopThread},    {"isAlive",          "()Z",        (void *)&JVM_IsThreadAlive},#else    {"start0",            "(I)V",        (void *)&JVM_StartThread},#endif#ifdef CVM_HAVE_DEPRECATED    {"suspend0",         "()V",        (void *)&JVM_SuspendThread},    {"resume0",          "()V",        (void *)&JVM_ResumeThread},#endif    {"setPriority0",     "(I)V",       (void *)&JVM_SetThreadPriority},    {"yield",            "()V",        (void *)&JVM_Yield},#ifdef JDK12    {"sleep",            "(J)V",       (void *)&JVM_Sleep},#else    {"sleep0",           "(J)V",       (void *)&JVM_Sleep},#endif    {"currentThread",    "()" THD,     (void *)&JVM_CurrentThread},#ifdef CVM_HAVE_DEPRECATED    {"countStackFrames", "()I",        (void *)&JVM_CountStackFrames},#endif    {"interrupt0",       "()V",        (void *)&JVM_Interrupt},    {"isInterrupted",    "(Z)Z",       (void *)&JVM_IsInterrupted},    {"holdsLock",        "(" OBJ ")Z", (void *)&JVM_HoldsLock},};#undef THD#undef OBJJNIEXPORT void JNICALLJava_java_lang_Thread_registerNatives(JNIEnv *env, jclass cls){    (*env)->RegisterNatives(env, cls, methods, 12);}#endif /* CVM_JAVALANGTHREAD_REGISTER_NATIVES */#include "javavm/include/indirectmem.h"/* CVM only.  Perhaps all Thread natives should be changed to use CNI */JNIEXPORT void JNICALLJava_java_lang_Thread_setCurrentThread(JNIEnv *env, jclass cls, jobject thread){    CVMExecEnv *ee = CVMjniEnv2ExecEnv(env);    CVMID_icellAssign(ee, CVMcurrentThreadICell(ee), thread);}JNIEXPORT void JNICALLJava_java_lang_Thread_setThreadExiting(JNIEnv *env, jclass cls){    CVMExecEnv *ee = CVMjniEnv2ExecEnv(env);    ee->threadExiting = CVM_TRUE;#ifdef CVM_JVMTI    ee->threadState = CVM_THREAD_TERMINATED;#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -