主线程中开启子线程代码实例:

创建CancleThread类 继承 Thread,对run()方法进行重写代码实例:

class CancleThread extends Thread

{

private boolean isRun = true;

private boolean isPinStart = false;

//重写Thread类的run()方法

public void run() {

int sleep;

String tip = "PedInputCancel\n";

while(isRun)

{

if(isPinStart)

{

isPinStart = false;

SystemClock.sleep(5000);

Display.appendInfo(tip);

try {

iPed.cancelInput();

} catch (PedDevException e) {

Display.printException(e);

assertTrue(String.format("cancelInput fail errCode=%d\nerrMsg=%s\n",

e.getErrCode(),e.getErrMsg()),e.getErrCode() == 0);

}

}

SystemClock.sleep(1000);

}

}

//利用stopRun()方法终止子线程的运行

public void stopRun()

{

isRun = false;

}

//利用 startPin()方法控制子线程中具体起作用的接口如: iPed.cancelInput();接口

public void startPin()

{

isPinStart = true;

}

}

开启子线程实例代码:

//实例化CancleThread 对象为thread

CancleThread thread = new CancleThread();

//通过调用start()方法开启子线程,从而运行子线程中的run()方法

thread.start();

Display.appendInfo("Pls input pin:");

Arrays.fill(PinBlockOut, (byte) 0);

try {

//利用 startPin()方法在子线程中运行 iPed.cancelInput()方法

thread.startPin();

PinBlockOut = iPed.getPinBlock(KeyIdx, ExpectPinLen, DataIn, eMode, TimeOutMs);

iRet = 0;

} catch (PedDevException pedDevException) {

Display.printException(pedDevException);

iRet = pedDevException.getErrCode();

errMsg = pedDevException.getErrMsg();

}

assertTrue(String.format("getPinBlock()=%d(%s), KeyIdx=%d, mode=%s\n",

iRet, errMsg, KeyIdx, eMode.name()), iRet == EPedDevException.PED_ERR_INPUT_CANCEL.getErrCodeFromBasement());

Display.appendInfo(String.format("getPinBlock()=%d(%s)\n",

iRet, errMsg));

}

//利用stopRun()方法终止子线程的运行

thread.stopRun();

说明: 以上代码实现目标:在主线程中调用 iPed.getPinBlock()方法的同时,并行运行子线程,并在子线程中运行iPed.cancelInput()方法。从而达到主线程运行同时运行子线程。

main线程 子线程 顺序_在主线程main中开启子线程thread示例相关推荐

  1. 简述java 线程四个状态_面四个选项中,哪些是线程进入阻塞状态的原因?_学小易找答案...

    [简答题]通过继承 Thread 类的方式创建两个线程,在 Thread 构造方法中指定线程的名字,并将这两个线程的名字打印出来. [论述题]请运用所学原理解释,为什么在孩子成长的过程中,家长要不断地 ...

  2. java 控制线程的顺序_【Java多线程系列四】控制线程执行顺序

    packagecom.concurrent.test;importjava.util.concurrent.CountDownLatch;importorg.junit.Assert;importor ...

  3. java 线程间变量共享_多线程:(五)多个线程之间共享数据

    简单的总结一下多线程共享数据的方式.其实,最重要的,是一个思想,一个面向对象的编程思想的建立. 说两点: 一.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中 ...

  4. centos7开机启动自定义脚本_在Centos 7系统中开启启动自定义脚本的方法

    以下为你提供在Centos 7系统中开启启动自定义脚本的两种方法,这两种方法均已在centos 7系统上验证成功过. 编写脚本文件 1.创建脚本文件 touch test.sh 2.编写脚本内容 #! ...

  5. MySQL数据库---子查询insert,update,delete语句中嵌套子查询

    十.子查询的使用(重点) 1.子查询:指的是查询语句,嵌套查询语句---->一般是放在where子句中,表示条件. 2.子查询的应用使用场景: 2.1查询过程中,虽然给了条件,但是条件的结果并不 ...

  6. android 开启子线程方法,android中开启子线程

    AndroidRuntime(673): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/ ...

  7. java创建单线程计时器_我们如何在Java中实现计时器线程?

    该定时器类计划任务一次或多次给定的时间运行.它也可以作为后台程序线程在后台运行.要将Timer与守护程序线程相关联,有一个带有布尔值的构造函数.计时器以固定的延迟和固定的速率安排任务.在固定的延迟中, ...

  8. 为什么不能在BroadcastReceiver中开启子线程

      当一个广播消息被Receiver监听到时,Android会调用它的onReceive()方法,并将包含消息的 Intent对象传给它处理, onReceive() 方法的执行时间不能超过10 秒, ...

  9. Android中开启子线程的方法和应用场景

    new Thread(){ @Override public void run() { //需要在子线程中处理的逻辑 } }.start(); 创建Thread类对象,在run()方法中进行耗时操作. ...

最新文章

  1. 长达1500年之久的争论:意识是连续的还是离散的?心理物理学家给出了新的回答...
  2. a+=b 等价于 a=a+b ?
  3. 请教开发WinForm时输入法问题
  4. 2018牛客网暑期ACM多校训练营(第十场)A Rikka with Lowbit (树状数组)
  5. s5pv210——nandflash和inand的基础理论
  6. 业务分析岗所需具备的技能_成功的业务分析师需要具备的3种技能
  7. hbuilder能用python_Hbuilder之开发Python
  8. 移植gettimeofday
  9. Qpython实现命令行的贪吃蛇
  10. BZOJ2832[AHOI2012] 信号塔
  11. 计算机科学家壁纸,电脑励志好看的文字壁纸推荐
  12. 大厂工作3年,我决定把大学到现在7年所有珍藏的书籍都分享一遍
  13. C# 打开CMD窗口并执行CMD 指令
  14. ssm使用注解配置多数据源
  15. 这才是我想要的彩虹进度条-[vue-ins-progress-bar]
  16. 成都办理或者补办社保卡的秘籍
  17. Atom汉化之Atom-Simplified-Chinese-Menu
  18. Android Bluetooth HID实现详解
  19. Android动画特效之Animator属性动画实现
  20. WIFI信号放大增强器(中继器)中继成功后怎么改名字

热门文章

  1. snipaste橡皮擦的使用
  2. nuxt框架Universal和Spa两种render mode的区别
  3. 8月报考季,软考科目选哪个?
  4. PTA-L1-007 念数字 (C语言)
  5. css实现毛玻璃效果
  6. FileOutputStream、OutputStreamWriter、BufferedWriter的区别和用法
  7. Windows时钟同步(时间同步)问题
  8. python中config(state=disabled)_解决python flask中config配置管理的问题
  9. Vue动态控制表格列的显示隐藏
  10. Matlab幂律变换及直方图均衡化