c++
oj_fang
这个作者很懒,什么都没留下…
展开
-
NDK开发中C与C++互相调用处理
在NDK开发中难免会遇到C与C++混合编程,比如C调用C++写的so库或者C++调用C的函数库,如果不做特别处理,就会出现编译通过但链接时找不到函数或者压根就编译不通过的情况。 为什么会出现这种情况?有两个原因:1.C++比C出现的晚,在C++里出现了很多新的特性,比如类、命名空间等,是C不支持的,因为C不能向下兼容,比如在C程序中直接使用new关键字生成一个对象是...原创 2019-12-16 17:40:05 · 407 阅读 · 0 评论 -
JNI快速学习
JNI是JVM中的一部分,它的存在就是为了打通java和native模块的桥梁。刚接触的时候会遇到一堆陌生的api,其实这些api的命名比较规范,调用几次之后就能举一反三。关键是要弄懂JNI的一些调用顺序,以下就是我用JNI碰到的一些关键点所做的记录。JNI_OnLoadJNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *rese...原创 2019-12-12 17:44:04 · 206 阅读 · 0 评论 -
时间戳
#include "ticks.h"static char ticks[32];char *getCurrentTimeMillis(void) { struct timespec ts; clock_gettime(CLOCK_REALTIME, &ts); memset(ticks, 0, 32); sprintf(ticks, "%lu", ts.tv_sec...原创 2019-07-16 17:56:44 · 226 阅读 · 0 评论 -
c++11多线程编程(十):packaged_task介绍与实例
c++11多线程编程(十):packaged_task介绍与实例2017年12月27日 10:36:35 小麒麟666 阅读数:860更多所属专栏: c++11多线程编程版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lijinqi1987/article/details/78909524本节讨论c++11中std::package...转载 2019-06-06 16:16:50 · 177 阅读 · 0 评论 -
C++11之std::future和std::promise和std::std::packaged_task
C++11之std::future和std::promise和std::std::packaged_task为什么C++11引入std::future和std::promise?C++11创建了线程以后,我们不能直接从thread.join()得到结果,必须定义一个变量,在线程执行时,对这个变量赋值,然后执行join(),过程相对繁琐。 thread库提供了future用来访问异步操作的...转载 2019-06-06 11:08:26 · 217 阅读 · 0 评论 -
[c++11]多线程编程(五)——unique_lock
[c++11]多线程编程(五)——unique_lock0.12018.09.01 01:00字数 534阅读 2797评论 0喜欢 2互斥锁保证了线程间的同步,但是却将并行操作变成了串行操作,这对性能有很大的影响,所以我们要尽可能的减小锁定的区域,也就是使用细粒度锁。这一点lock_guard做的不好,不够灵活,lock_guard只能保证在析构的时候执行解锁操作,lock_...转载 2019-05-23 15:28:28 · 103 阅读 · 0 评论 -
c++11多线程
转载:https://www.cnblogs.com/wangguchangqing/p/6134635.html说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段。并行是指两个或多个独立的操作同时进行。注意这里是同时进行,区别于并发,在一个时间段内执行多个操作。在单核时代,多个线程是并发的,在一个时间段内轮流执行;在多核时代,多个线程可以实现真正的并行,在多核上真正...转载 2019-05-15 11:32:05 · 146 阅读 · 0 评论 -
auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针使用总结
stl中auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针使用总结stl中auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针使用总结 1. auto_ptrauto_ptr主要是用来解决资源自动释放的问题,比如如下代码:void Function(){Obj*p = new Obj(20);......转载 2018-12-17 10:55:20 · 163 阅读 · 0 评论 -
tzset 作用
tzset 的作用2010年12月27日 01:42:00 hengcn 阅读数:1467 标签: linuxredhatunixdos服务器生活 更多个人分类: C-永恒的经典函数名称: tzset 函数原型: void tzset(void) 函数功能: UNIX兼容函数,用于得到时区,在DOS环境下无用途 函数返回: 参数说明: 所属文件: <time.h>...转载 2018-12-14 14:53:27 · 919 阅读 · 0 评论 -
so库显式调用与隐式调用区别(包含示例)
一、显式调用和隐式调用的区别 我们知道,动态库相比静态库的区别是:静态库是编译时就加载到可执行文件中的,而动态库是在程序运行时完成加载的,所以使用动态库的程序的体积要比使用静态库程序的体积小,并且使用动态库的程序在运行时必须依赖所使用的动态库文件(.so文件),而使用静态库的程序一旦编译好,就不再需要依赖的静态库文件了(.a文件)。 动态库的调用又分...转载 2018-12-13 14:52:14 · 2254 阅读 · 0 评论 -
C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:a.引用b.常量c.静态d.静态常量(整型)e.静态常量(非整型) 常量和引用,必须通过参数列表进行初始化。 静态成员变量的初始化也颇有点特别,是在类外初始化且不能再带有static关键字,其本质见文末。参考下面的转载 2017-08-15 21:51:19 · 359 阅读 · 0 评论 -
linux phread_detach 用法
创建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码),所以创建线程者应该pthread_join来等待线程运行结束,并可得到线程的退出代码,回收其资源(类似于wait,waitpid)但是调用pthread_join(pthread_id)后,如果该线程没有运行结束,调用者会转载 2017-08-04 14:13:17 · 358 阅读 · 0 评论 -
pthread_kill 与pthread_cancel使用方法
pthread_kill 与pthread_cancel使用方法#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t cond = PTHREAD_COND_INIT原创 2017-08-11 09:05:43 · 958 阅读 · 0 评论 -
static成员函数不能被声明为const virtual volatile 原因
1.virtual与静态函数C++中,静态成员函数不能被声明为virtual函数。例如,下面的程序会编译失败。#include<iostream>class Test{ public: // 编译错误:static成员函数不能声明为virtual virtual static void fun() { }};同样地,静态成员函数也不能被声明为cons原创 2017-08-16 21:11:58 · 1233 阅读 · 0 评论 -
linux内核队列实现
linux内核队列实现/*****author:方福建date:2017/07/24*****/#ifndef _SIMPLEQUEUE_#define _SIMPLEQUEUE_#ifdef __cplusplusextern "C" {#endif#include "kdvtype.h"const u32 m_gMaxSize=100;class SimpleQueue{pub原创 2017-07-24 17:09:50 · 217 阅读 · 0 评论