安卓线程使用问题

笔者今天使用c++ 11的 std::thread在安卓设备上来创建线程控制网络异步发送,发现线程启动就马上闪退,估计是安卓设备上不支持c++11的线程库,或者安卓系统版本过低,所以还是用回以前的pthread_create来创建线程,以下是三种创建线程的方法以及对应使用方法:

std::thread方法:(支持windowsphone,windowsRT,ios,mac平台)

std::thread m_thread = std::thread(&Upgrade::requestHttp,this);

m_thread.detach();

pthread_create方法:(支持Unix、Linux、Mac OS X、IOS、安卓)

pthread_t _thread;

pthread_create(&_thread, NULL, &Upgrade::requestHttp, this);

pthread_detach(_thread);

CreateThread方法:(支持windows pc平台)

CreateThread(NULL,          // default security attributes

0,             // use default stack size

&Upgrade::requestHttp,   // thread function name

this,          // argument to thread function

0,             // use default creation flags

NULL);

转载请注明出处,from 博客园 HemJohn

时间: 10-15

安卓线程使用问题的相关文章

Android Studio--从Java线程到安卓线程

写在前面: 本文为安卓线程与JAVA线程的异同,请多多指正! 简述: 相信很多学安卓的都是从java入门之后开始进行安卓的学习,而当我们面临安卓线程的书写的时候,发现安卓线程并不是我们想象中使用java的线程写法就可以. java线程的语法移植出错了? 这里我们简单的书写一个TextClock(由TextView 和Calendar组成),这里的Button用于终止时间.这里我们使用java上线程的写法来: public class MainActivity extends AppCompatA

安卓线程相关 HandlerThread Handler Thread Looper Message Runnable

本文由PurpleSword(jzj1993)原创,转载请注明 原文网址 http://blog.csdn.net/jzj1993 安卓主线程(UI线程)是线程不安全的:对UI控件的操作都应在主线程中完成:UI线程不应执行耗时操作,以免程序不响应(即ANR异常) 实现新线程的常用方法(注意要调用start方法启动新线程而不是run方法): 一.定义类,实现Runnable接口 class MyRunnable implements Runnable { /** * 实现接口的run方法 */ @

小知识 安卓线程和ui

1. 定时更新ui 通常需要一些类似定时更新ui的代码,如动画控制. 1.1多线程定时更改ui 具体就是新启动(不让ui线程sleep而卡住)一个线程去计时,之后定时来通知ui修改. 1.1.1新启动线程定时执行任务 Timer + TimerTask 新启动线程:run方法中:while(true) + Thread.Sleep/SystemClock.Sleep 本质上都是一个新线程在背后计时.由于使用一个新的非ui线程执行计时,需要在时间到达后去通知ui修改.出于性能考虑,安卓的ui控件不

安卓多线程间通信和多进程之间通信有什么不同?分别怎么实现?

当一个程序第一次启动的时候,Android会启动一个LINUX进程和一个主线程.默认的情况下,所有该程序的组件都将在该进程和线程中运行. 同时,Android会为每个应用程序分配一个单独的LINUX用户.Android会尽量保留一个正在运行进程,只在内存资源出现不足时,Android会尝试停止一些进程从而释放足够的资源给其他新的进程使用, 也能保证用户正在访问的当前进程有足够的资源去及时地响应用户的事件.线程是进程的有机组成部分,是CPU调度的基础.一般情况下,都有主线程和其他线程之分,只有主线

安卓从入门到精通路线图

1.基础入门课--JavaSE:集合,线程,IO流主要掌握 2.web开发:servelet和JSP,和HTML相关内容: 3.服务器端的开发:jdbc的使用mysql的使用: 4.安卓的入门介绍:代码框架结构,常用代码布局, 5.Android常用布局 6.Android常用的UI控件:Listview,Fragment 7.Android的文件操作包括数据库等: 8.Android的网络协议部分包括json和xml的数据分析: 9.andorid的UI输入事件,菜单,对话框和通知等等: 10

各科基础详实

一. Java基础部分 1. JAVA的基本数据类型有哪些 ?  String 是不是基本数据类型 ? 2. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 3. Java有没有goto? 7 4. 说说&和&&的区别. 7 5. 在JAVA中如何跳出当前的多重嵌套循环? 7 6. switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 8 7. short s1 = 1; s1 = s1 + 1;有什么

关于安卓开发的 线程机制和出现的文件写入存储的异步刷新界面的错误。

首先 说线程.安卓开发的的异步刷新UI是需要在主线程里面进行的,你需要写handlers来进行,在写个线程来发送消息给handler,然后这个时候会出现一个线程异常,界面上的操作是你点一次按钮触发一次,然后再次点击会蹦掉,程序死机.你这个时候只需要在你按钮的监听事件 通过直接new Thread( 宁外一个线程的名字 ).start 就解决了. 在安卓中文件存储 分2中,一个是存储到sd卡.但是机器不一样会出现问题导致存储不进.比如我做了一个外部存储的判断是否加载,而机器是没有外部存储的,但是就

多线程开发(一)-安卓系统的线程

第1节 线程概述 安卓应用只有一个主线程-各个组件都是在这个线程中运行.作为组件的之一的Activity就是在这个线程中更新应用界面的,例如,用户点击界面上的一个按钮,按钮得到响应,整个过程就是在这个主线程里.所以这个主线程绝对不可以做耗时的操作.假如在按钮中做了耗时的操作,那么当它进行耗时操作的时候,你去点击界面上的其它按钮是不会有反应的,就好像程序冻在了那里. 我们的代码一旦连续占用这个线程超过一定的时间,系统就会弹出"程序无响应的"提示,这个提示叫做ANR-Applicatin

【Android】揭秘如何利用Service与线程制造安卓后台通知栏推送

安卓设备的后台通知栏推送很烦,主要是可以通过利用安卓的Service功能,在app被点击Home键或者返回键之后,依旧可以在挂载后台运行.反正Home键或者返回键只能杀死Activity而不能终结Service的,不像Windows点关闭键默认是关闭程序界面+程序线程. 本文的意义相当于在Windows中制造一条线程,或者是对Windows应用程序的关闭键进行重写,让其应用程序的关闭仅仅是隐藏界面,不杀死进程. 理论上,只要这个Service不被安卓系统因内存不足所回收,会一直持续到设备重启,或