linux程序运行问题解决集合

本文依据目前工作场景中程序运行出现的错误罗列至此,后续持续更新。


(1) Thread 1 "wow_base_test" received signal SIGILL, Illegal instruction.

错误追踪

(gdb) backtrace
#0  __lll_unlock_elision (lock=0x7fffffffe250, private=0) at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29
#1  0x00007ffff7fbb63b in wow_mutex_unlock (lock=0x7fffffffe250) at /home/wow/open/wow-iot7/wow_base/src/system/wow_lock.c:125
#2  0x000055555555abda in test_lock_mutex () at /home/wow/open/wow-iot7/wow_base/test/system/suit_lock.c:155
#3  0x000055555555ae7a in suit_lock () at /home/wow/open/wow-iot7/wow_base/test/system/suit_lock.c:217
#4  0x000055555555891d in greatest_run_suite (suite_cb=0x55555555adc7 <suit_lock>, suite_name=0x5555555603a5 "suit_lock")
    at /home/wow/open/wow-iot7/wow_base/test/main.c:27
#5  0x0000555555559551 in main (argc=1, argv=0x7fffffffe3d8) at /home/wow/open/wow-iot7/wow_base/test/main.c:41

代码段:

TEST test_lock_mutex(void)
{
    printf(MOD_TAG"suit_lock----test_lock_mutex\n");

    mutex_lock_t lock;    

    gi_threadFlag = 1;
    
    wow_thread_create(MOD_TAG,mutex_lock_thread,&lock);
    wow_thread_create(MOD_TAG,mutex_unlock_thread,&lock);

    sleep(10);
    gi_threadFlag = 0;
    wow_mutex_unlock(&lock);    
    sleep(3);
    
    ///<这里  !!不要去解锁一个未被加锁的mutex锁
    wow_mutex_unlock(&lock);
    
    PASS();
}

线程锁使用注意事项:

 1、不要去解锁一个未被加锁的mutex锁;

 2、不要一个线程中加锁而在另一个线程中解锁;

 3、使用mutex锁用于保护临界资源,严格按照“加锁-->写入/读取临界资源-->解锁”的流程执行,对于线程间同步的需求使用条件变量或信号量实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 Linux 上的 Java 程序调优,有几个常见的方面可以考虑: 1. JVM 参数调优:可以通过调整 JVM 的参数来优化 Java 程序的性能。例如,可以通过设置堆大小、垃圾回收器策略、线程池大小等参数来实现优化。可以使用工具如 jstat、jvisualvm、jmap 等来监控和分析程序的运行情况。 2. 内存管理:Java 程序在运行时会消耗大量的内存,合理管理内存可以提高程序的性能。可以通过使用合适的数据结构、避免过度创建对象、及时释放资源等方式来进行内存管理。 3. 并发控制:多线程是 Java 程序的一个特点,但不正确的并发控制可能导致性能问题。可以使用并发集合类、合理使用锁、避免竞争条件等方式来优化并发性能。 4. IO 操作优化:IO 操作通常是影响 Java 程序性能的重要因素之一。可以使用非阻塞 IO、缓冲区、批量处理等方法来提高 IO 操作的效率。 5. 数据库访问优化:如果 Java 程序需要频繁地访问数据库,可以考虑使用连接池、合理设计数据库表结构、使用索引、批量操作等方式来优化数据库访问性能。 6. 代码优化:对于性能瓶颈明显的代码片段,可以进行针对性的优化。例如,使用更高效的算法、减少循环次数、避免不必要的计算等。 请注意,以上只是一些常见的优化方面,具体的调优方法需要根据具体情况进行分析和实施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值