摘要:
1. 开启线程 创建执行任务 Runnable 使用Thread创建线程, Thread构造函数传入 Runnable 调用start 开启线程 不要直接调用Thread的run方法,这不会开启线程应该调用start new Thread(new Runnable() { @Override pub 阅读全文
摘要:
整理自这篇文档,好文档 1. c++11之前引入多线程的方式 通过引入线程库的方式,一般是Pthread库的方式引入线程库,注意的是编译器并不知道有线程的存在,编程语言也不知道,仅仅库支持线程的一些操作,这种方式脱离语言不保证语言的安全性 2. Pthread标准 1. 应用程序应该确保一个或者 阅读全文
摘要:
摘抄自这里 原文请看这里 位域说明 struct bs{ unsigned m; unsigned n: 4; unsigned char ch: 6; } 说明: 使用: 后面加上数字的形式,限定变量占用的bit数目,不指定:, 默认为类型的bit 上面中m未指定位数所以是 4Byte,n是4bi 阅读全文
摘要:
引用https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html 1. JNI Native String 函数 JNI支持两种编码 Unicode (16-bit characters) and UT 阅读全文
摘要:
#借鉴转载https://blog.csdn.net/qq_35246620/article/details/64958736 1. 一键生成头文件 jni生成的.h .c文件均放在这个目录下 点击 File>Settings>Tools>External Tools: 点击+ 鼠标右键 阅读全文
摘要:
手写编译太麻烦了,推荐下载IntelliJ IDEA来写java JNI的c/c++混合调用 Main.java文件 package com.zero_waring.jni_test; public class Main { static { System.loadLibrary("hello"); 阅读全文
摘要:
官网地址 sublime 快捷键 文件跳转查找 ctrl + p 输入一部分文件名然后打开对应文件 输入@然后输入符号,在当前文件跳转到对应函数 类 全局变量 输入#然后输入符号, 在文件中查找任何出现的符号,包括局部变量 输入:然后输入行号,就可以跳转对应行号 这些快捷方式可以组合使用,因此tp@ 阅读全文
摘要:
注意 立即操作数(也就是常量)前面要加上$ 寄存器操作数前面要加上字符百分号% 源和目的操作数是从左到右的顺序 寄存器前面加上(%eax),代表对eax的内容进行取值操作 指令 mov 该指令作用为移动数据,因为汇编指令要求,不能内存和内存直接操作,需要通过寄存器作为桥梁来实现数据移动 movl m 阅读全文
摘要:
以下使用GNU89的标准 1.内联的定义: 内联就是一个关键字inline加载函数定义处,告诉编译器在编译的时候请对这个函数调用的地方进行内联调用(这里说的请,编译器可以拒绝这个操作因为内联函数的失败) 2.内联函数的作用 内联是为了节约函数的调用开销而诞生的,我们在调用一个普通函数的时候,存在的额 阅读全文
摘要:
##String java的字符串类 ##初始化方式 String aa = new String("aa"); String aa = "aa"; 阅读全文