zoukankan      html  css  js  c++  java
  • 2018年7月

    GoLand File->Settings->Editor->General->Appearance->Show parameter name hints

     

     

     

     

     Go规定包声明中的包名是代码包路径的最后一个元素

                    go 关键字及分类
    类别                关键字

    程序声明              import,package
    程序实体声明和定义         chan,const,func,interface,map,struct,type,var
    程序流程控制            go,select,break,case,continue,default,defer,else,fallthrough,for,goto,if,range,return,switch

    只要多个进程同时对同一个资源进行访问,就很可能互相干扰,这种干扰通常称为竞态条件(race condition)
    执行过程中不能中断的操作称为原子操作(atomic operation)
    而只能被串行化访问或执行的某个资源或某段代码称为临界区(critical section)
    可以看到,原子操作和临界区这两个概念看起来有些相似.
    但是,原子操作是不能中断的,而临界区对是否可以被中断却没有强制的规定,
    只要保证一个访问者再临界区中时其他访问者不会被放进来就可以了.
    这也意味着它们的强度是不同的.
    保证只有一个进程或线程再临界区之内的做法有一个官方称谓-互斥(mutual exclusion,简称mutex).
    实现互斥的方法必须确保排他原则(exclusion principle),并且这种保证不能依赖与任何计算机硬件(包括CPU)

    如果有一个代码块,它可以被多个线程并发执行,且总能够产生预期的结果,那么该代码块就是线程安全的(thread-safe)
    如果某个进程中的所有线程都可以并发地对一个函数进行调用,并且无论它们调用该函数的实际执行情况怎样,
    该函数都可以产生预期的结果,那么就可以硕这个函数是可重入的(reentrant).如果某个进程中的所有线程都可以
    并发地对一个函数进行调用,并且无论它们调用该函数的实际执行情况怎样,该函数都可以产生预期的结果,
    那么就可以说这个函数是可重入的.

     

    mgo(Rich MongoDB driver for Go)

    MingW

    #include <stdio.h>
    int myadd(int a, int b)
    {
        return a + b;
    }
    all: test1.dll
    
    test1.dll: test1.o
        gcc -shared -o test1.dll test1.o
    test1.o: test1.c
        gcc -c test1.c
    package main
    
    import (
        "syscall"
        "fmt"
    )
    
    func main() {
        addfile, err := syscall.LoadLibrary("test1.dll") //动态库的路径
        if err != nil {
            fmt.Printf("cgo:err :%v
    ", err)
        }
        myaddcall, _ := syscall.GetProcAddress(addfile, "myadd")
    
        var nargs uintptr = 3
        ret, _, callErr := syscall.Syscall(uintptr(myaddcall), nargs, 5, 3, 0)
    
        if callErr != 0 {
            fmt.Printf("Call myaddcall: %v
    ", callErr)
        }
        fmt.Printf("myadd:%v
    ", ret)
    }

    pacman -S mingw-w64-x86_64-toolchain

    pacman -S base-devel

    pacman -S msys-devel

    pacman -Ss gcc

    pacman -Syu

    pacman -Su

    gnatsd.exe

    gnatsd -config ./go.conf -D

    go.conf

      #Cluster Seed Node

      listen: 0.0.0.0:3222

      http:3223

      cluster {

        listen: 0.0.0.0:8248

      }

    mongod --dbpath pathString

  • 相关阅读:
    几个可以用到的正则表达式
    apache fileupload 文件上传,及文件进度设置获取
    Log4j日志根据配置输出到多个自定义文件
    spring3.2.2 remoting HTTP invoker 实现方式
    希望自己坚持住!
    tomcat线程一直处于RUNNABLE,不接受请求
    OM—>AR相关会计科目
    css画图
    Jquery 实现原理之 Ajax
    HTML、XHTML和HTML5区别与联系
  • 原文地址:https://www.cnblogs.com/revoid/p/9249326.html
Copyright © 2011-2022 走看看