• DBI && MySQL lock


    DBI: url

    set isolation to dirty read

    my $npmdb_dbh = DBI->connect("DBI:ODBC:npmdb", "informix","*******",{RaiseError=>0,PrintError=>0});
    my $gisdb_dbh = DBI->connect("DBI:Oracle:gisdb", "gis","*******",{RaiseError=>1,AutoCommit=>0});

    $npmdb_dbh->do("set isolation to dirty read");    
                   
    my $sel_sql = " select a.first_result,a.ne_id,
                                NVL(CSTRAFFIC_CONV11,0),

                                round(SFB_DIVFLOAT_1(NVL(b.ATTOUTPSUTRAN,0)-NVL(b.FAILOUTPSUTRAN,0),NVL(b.ATTOUTPSUTRAN,0),0,0)*100,2)

                                from tpc_utrancell_ne a ,TPC_UTRANCELL_HO_NE b,TPC_UTRANCELL_HSPA_NE c
                                        
                                where  a.first_result =  current year to hour - $para units hour ||':00:00'
                                and a.first_result = b.first_result
                                and a.first_result = c.first_result
                                and a.ne_id = b.ne_id
                                and a.ne_id = c.ne_id
    ";
                             
       
    my $rsite = $npmdb_dbh->prepare($sel_sql);
        
    $rsite->execute();
        
    my $ref_data = $rsite->fetchall_arrayref();
        
    $rsite->finish;
        
    $gisdb_dbh->do("delete from BTS_PM_TD where first_result <= sysdate - 74/24");

        $gisdb_dbh->do("commit");
        
    $npmdb_dbh->disconnect();
        
    $gisdb_dbh->disconnect();

    1,Pthread线程控制

    int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*stat_rtn)(void*), void *restrict arg);
    int pthread_exit(void *status);
    int pthread_cancel(pthread_t thread);
    int pthread_join(pthread_t tid, void **tret);
    int pthread_cleanup_push(void (*rtn)(void*), void *arg);
    int pthread_clean_pop(int execute);
    int pthread_equal(pthread_t tid1, pthread_t tid2);
    pthread_t pthread_self(void);

    2,Pthread提供多种同步机制:
    1) Mutex(互斥量):pthread_mutex_xxx
    2) Condition Variable(条件变量):pthread_con_xxx
    3) Read/Write lock(读写锁):pthread_rwlock_xxx
    4) Spin lock(自旋锁):pthread_spin_xxx

    int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); // PTHREAD_MUTEX_INITIALIZER
    int pthread_mutex_destroy(pthread_mutex_t *mutex);
    int pthread_mutex_lock(pthread_mutex_t *mutex);
    int pthread_mutex_trylock(pthread_mutex_t *mutex);
    int pthread_mutex_unlock(pthread_mutex_t *mutex);

    int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t *restrict attr);
    int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);
    int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);
    int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);
    int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);
    int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);
    int pthread_rwlock_unlock(pthread_rwlock_t *rwlock);

    int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr);
    int pthread_cond_destroy(pthread_cond_t *cond);
    int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex);
    int pthread_cond_timedwait(pthread_cond_t *restict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime);
    int pthread_cond_signal(pthread_cond_t *restrict cond);
    int pthread_cond_broadcast(pthread_cond_t *restrict cond);

    int pthread_spin_init(pthread_spinlock_t *lock, int pshared);
    int pthread_spin_destroy(pthread_spinlock_t *lock);
    int pthread_spin_lock(pthread_spinlock_t *lock);
    int pthread_spin_trylock(pthread_spinlock_t *lock);

  • 相关阅读:
    一、入门实例
    十四、事物配置
    JAVA-调用http链接
    ORACLE 年龄计算到月份
    ORACLE和MYSQL 去重查询
    JAVA--将图片转为BASE64编码并返回thymeleaf页面
    JAVA--将图片保存至项目路径
    java--获取类加载路径和项目根路径
    excel执行INSERT和UPDATE操作语句
    c# 未能加载Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342
  • 原文地址:https://www.cnblogs.com/beilei123/p/3541123.html
Copyright © 2020-2023  润新知